@BuTOC_90

Как имитировать клик по добавленному элементу?

Всем привет

например, у меня есть такие элементы

<div loading>
  
  <div class="prevs">
    <div class="prev" k=1></div>
    <div class="prev" k=2></div>
    <div class="prev" k=3></div>
    <div class="prev" k=4></div>
  </div>

  <div class="photos">
    <a href="" k=1></a>
    <a href="" k=2></a>
    <a href="" k=3></a>
    <a href="" k=4></a>
  </div>
  
</div>


и при клике по" .prev" я имитирую клик по "a" через "k"

$(document).on('click','.prevs .prev',function() {
  var k = $(this).attr('k');
  $($('.photos a[k='+k+']')).click();
})


но после динамического обновления, например

<div loading>
  
  <div class="prevs">
    <div class="prev" k=5></div>
    <div class="prev" k=6></div>
    <div class="prev" k=7></div>
    <div class="prev" k=8></div>
  </div>

  <div class="photos">
    <a href="" k=5></a>
    <a href="" k=6></a>
    <a href="" k=7></a>
    <a href="" k=8></a>
  </div>
  
</div>


"click()" по "a" не имитируется.
сам клик по ".prev" ловится, но имитация по загруженному элементу не срабатывает
$($('.photos a[k='+k+']')).click();

кто-нибудь сможет подсказать, как быть?

заранее спасибо
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ответы на вопрос 1
xEpozZ
@xEpozZ
Веб-разработчик
А зачем вы 2 раза оборачиваете в $($( ?
Попробуйте $(document).find(".photos a[k="+k+"]").click()

P.S. вместо k обычно используют data-{custom-attribute}. Например: data-id
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы