я создаю HTML в PHP, как здесьJquery Селектор для динамически создаваемых элементов
<?php
while(){
?>
<a id="click_to_expand-1" class="btn btn-default btn-sm "> more</a>
<div id="expand_content-1" class="row extra-detail-gist" style="display: none;">
<ul class="extra-feature-gist">
<li>
<p><strong>Baths :</strong><span class="text-success"> <?php echo $rw["baths"]; ?></span></p>
</li>
</ul>
<?php
}
?>
Вот мой Jquery код
$(function(){
$('.row.extra-detail-gist').css('display','none');
$('.btn.btn-default.btn-sm').click(function(){
$('.row.extra-detail-gist').slideToggle('slow');
$(this).toggleClass('slideSign');
return false;
});
});
Этот код применяется для всех Див созданы и все дивы показываются при щелчке . Как я могу различаться для каждого нажатия на «больше»?
ОБНОВЛЕНО: Этот код работает для первого один properly..but остальных записей не работает
$(function(){
$('#expand_content-1').css('display','none');
$('#click_to_expand-1').click(function(){
$('#expand_content-1').slideToggle('slow');
$(this).toggleClass('slideSign');
return false;
});
});
Вот JSFIDDLE
не уверен, в чем проблема, но, судя по названию, я предполагаю, что вы хотите $ ('.btn.btn-default.btn-sm'). On ('click', function() {если вы желая привязываться к динамически созданным элементам – atmd
'$ (this) .next ('. row.extra-detail-gist'). slideToggle ('slow');'. Кстати, '$ ('. row.extra- detail-gist '). css (' display ',' none '); 'может быть' $ ('. row.extra-detail-gist '). hide(); '. Кроме того, поскольку все элементы скрыты по умолчанию ('style =" display: none; ")', эта строка бесполезна. – Regent
На самом деле цикл создает и div с тем же классом .... например, есть 6 записей, поэтому все имеют одинаковый класс ... когда я нажимаю на первом он также применяется к оставшимся – user3913117