Как передать jquery экземпляр в селектор - PullRequest
0 голосов
/ 17 января 2020

Как мне использовать .eq() вместо :eq()

Я хочу использовать что-то вроде этого -> $('div').eq(1)

Вот фрагмент кода проблемы

$(document).on('click', 'li.trigger div:eq(1) a.ajax img,' +
    ' li.event div:eq(1) a.ajax img', function (event) {

1 Ответ

3 голосов
/ 17 января 2020

Небольшая фиктивная версия того, что вам, скорее всего, придется делать. Вы захотите использовать eq() внутри обработчика событий, чтобы убедиться, что элемент для события совпадает с тем, который вам нужен.

Редактировать: вопрос изменился с использования :eq на :first. Поскольку :first совпадает с :eq(0), решение мало что должно измениться.

$(document).on('click', 'button', e => {
  $('#container').append('<div><p>Click Me</p></div>');
});

$(document).on('click', 'div p', e => {
  if ($('div p').eq(0).is(e.target)) {
    console.log('You clicked the first paragraph!');
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="container"></div>
<button>Add More</button>
...