2014-12-16 4 views
0

я создаю 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

+0

не уверен, в чем проблема, но, судя по названию, я предполагаю, что вы хотите $ ('.btn.btn-default.btn-sm'). On ('click', function() {если вы желая привязываться к динамически созданным элементам – atmd

+0

'$ (this) .next ('. row.extra-detail-gist'). slideToggle ('slow');'. Кстати, '$ ('. row.extra- detail-gist '). css (' display ',' none '); 'может быть' $ ('. row.extra-detail-gist '). hide(); '. Кроме того, поскольку все элементы скрыты по умолчанию ('style =" display: none; ")', эта строка бесполезна. – Regent

ответ

2

Попробуйте это:

Рабочих Example

$(document).on('click','.btn.btn-default.btn-sm',function(){ 
    $(this).parent().next('.row.extra-detail-gist').slideToggle('slow'); 
    $(this).toggleClass('slideSign'); 
    return false; 
}); 

С этой строкой $('.row.extra-detail-gist') вы выбираете все divs, у которого есть row extra-detail-gist класс.

+0

Еще одна важная вещь: она должна быть', ', а не' .' после '' click''. Кстати, '$ (».btn.btn-д efault.btn-sm '). on (' click ', function() {'выглядит лучше для меня (поскольку нет динамически созданных элементов). – Regent

+0

Код не работает – user3913117

+0

Нет ошибки ... код не работает – user3913117

Смежные вопросы