.on('click' в .on('click' как реализовать или чем заменить

93
22 июня 2021, 13:40

При нажатии на <div name="show_details_by_order" открывается <div id="order_body_ и стает доступно нажать на <a name="show_extended_details", но при нажатии на нее срабатывает закрытие <div id="order_body_, а должно открывать <div class="order-info"

Как можно такое реализовать?

$(document).ready(function(){ 
	$('[show_type="details"][order_id="<?php echo $order['order_id']; ?>"]').addClass('hidden'); 
	$('[show_type="extended_details"][order_id="<?php echo $order['order_id']; ?>"]').css({'margin': '-223px 0px 0px'}); 
	$('#order_body_<?php echo $order['order_id']; ?>[show_type="details"][order_id="<?php echo $order['order_id']; ?>"]').css({'margin': '-<?php echo ($order['count'] * 110) + 170; ?>px 0px 0px'}); 
 
	function show_details(){ 
		$('[show_type="list"][order_id="<?php echo $order['order_id']; ?>"][name="show_details_by_order"]').on('click',function(){ 
			if($('[show_type="details"][order_id="<?php echo $order['order_id']; ?>"]').hasClass('hidden')) { 
				$('[show_type="details"][order_id="<?php echo $order['order_id']; ?>"]').removeClass('hidden'); 
				$('#order_body_<?php echo $order['order_id']; ?>[show_type="details"][order_id="<?php echo $order['order_id']; ?>"]').css({'margin': '0px'}); 
			} else { 
				$('[show_type="details"][order_id="<?php echo $order['order_id']; ?>"]').addClass('hidden'); 
				$('[show_type="details"][order_id="<?php echo $order['order_id']; ?>"][name="payment_details_block"]').css({'margin': '-181px 0px 0px'}); 
				$('#order_body_<?php echo $order['order_id']; ?>[show_type="details"][order_id="<?php echo $order['order_id']; ?>"]').css({'margin': '-<?php echo ($order['count'] * 110) + 170; ?>px 0px 0px'}); 
				$('[show_type="extended_details"][order_id="<?php echo $order['order_id']; ?>"]').css({'margin': '-223px 0px 0px'}); 
			} 
		}); 
	} 
	 
	function show_extended(){ 
		$('#show_extended_details_<?php echo $order['order_id']; ?>[order_id="<?php echo $order['order_id']; ?>"]').on('click',function(){ 
			if($('.order-info[show_type="extended_details"][order_id="<?php echo $order['order_id']; ?>"]').attr('style') == 'margin: 0px;') { 
				$('[show_type="extended_details"][order_id="<?php echo $order['order_id']; ?>"]').css({'margin': '-223px 0px 0px'}); 
			} else { 
				$('[show_type="extended_details"][order_id="<?php echo $order['order_id']; ?>"]').css({'margin': '0px'}); 
				 
			} 
		}); 
	} 
 
	show_details(); 
	show_extended(); 
});
<div class="flex profile-order-details clearfix"> 
	<div class="flex profile-order-heading-list" name="show_details_by_order" order_id="<?php echo $order['order_id']; ?>" effect_type="style" show_type="list"> 
		<div class="profile-order-code-wrap"> 
			<a show_type="list" effect_type="style" order_id="<?php echo $order['order_id']; ?>" class="novisited sprite-side profile-order-code-link"> 
				<span class="xhr">№ <?php echo $order['order_id']; ?></span> 
			</a> 
		</div> 
		<div class="profile-order-wrap"> 
			<time class="profile-order-date"><?php echo $order['date_added']; ?></time> 
			<div class="profile-order-count-goods" show_type="list" order_id="<?php echo $order['order_id']; ?>"><?php echo $order['products']; ?> товар на <nobr><?php echo $order['total']; ?></nobr></div> 
			 
			<div class="profile-order-list-img" show_type="list" order_id="<?php echo $order['order_id']; ?>"> 
				<?php foreach ($order['product_info'] as $product_info) { ?> 
				<a class="responsive-img profile-order-g-i-img-link" href="#"> 
					<img src="<?php echo $product_info['thumb']; ?>" alt="<?php echo $product_info['name']; ?>" title="<?php echo $product_info['name']; ?>" style="border:none" width="40" height="26"> 
				</a> 
				<?php } ?> 
			</div> 
			<div show_type="details" order_id="<?php echo $order['order_id']; ?>" class="hidden"> 
				<a name="show_extended_details" order_id="<?php echo $order['order_id']; ?>" id="show_extended_details_<?php echo $order['order_id']; ?>" class="novisited sprite-side profile-order-info-link"> 
					<span order_id="<?php echo $order['order_id']; ?>" class="xhr"> 
						<?php echo $order['info']; ?> 
					</span> 
				</a> 
			</div> 
		</div> 
	</div> 
	<div style="margin: 0px; overflow: hidden;"> 
		<div class="order-info" show_type="extended_details" order_id="<?php echo $order['order_id']; ?>" style="margin: -223px 0px 0px;"> 
			<table class="profile-order-info-t"> 
				<tbody> 
					....... 
				</tbody> 
			</table> 
		</div> 
	</div> 
	<div style="margin: 0px; overflow: hidden;"> 
		<div id="order_body_<?php echo $order['order_id']; ?>" class="profile-order-goods clearfix" show_type="details" order_id="<?php echo $order['order_id']; ?>" style="margin: -<?php echo ($order['count'] * 110) + 170; ?>px 0px 0px;"> 
			...... 
		</div> 
	</div> 
</div>

READ ALSO
Почему position: sticky в классе .header-top не работает?

Почему position: sticky в классе .header-top не работает?

Изучаю тему позиционирования элементов, застрял на позиции stickyПо задуму шапка сайта должна прилипнуть при скроле

90
Проблем погрузки классов при @import

Проблем погрузки классов при @import

Есть несколько страниц vue с одинаковыми классами стилейРешил перенести стили в один файл и подключать к каждой странице отдельно

74
Реализация и использование Identity функции

Реализация и использование Identity функции

Хотел бы начать с примера, поэтому для начала опишу несколько используемых функций

80
c++ stl: пересечение множеств

c++ stl: пересечение множеств

подскажите, есть в stl стандартные средства или какой-то короткий оптимальный способ для решения следующей задачи:

106