@Q_BASIC
Программист

При $(document).click(selector) как не обрабатывать вложенные элементы в jQuery?

Есть DOM:
<div class="e-1" data-phone="123">
  <span>Текст</span>
  <span>Текст</span>
  <div>
    <span>Текст</span>
  </div>
</div>


Есть мой JS:
$(document).click('.e-1', function(event) {
console.log(event.target)
});


Событие через document ставится, потому что на странице ajax и он подменяет контент. Мне надо обрабатывать клик на '.e-1' и получать его атрибуты, а у меня event.target показывает что клик на вложенном элементе, на span.

Если сделать так:
$('.e-1').click(function(){
console.log(this)
})

- тут нужный нам элемент

Как заставить обрабатывать события jquery на указанном элементе, а не на вложенном? Делать дополнительную логику и пробираться от event.target к нужному элементу не хочется
  • Вопрос задан
  • 341 просмотр
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
$(document).click('.e-1', function(event) {
console.log(event.target)
});

Вот бы узнать: первый параметр метода click, он тут по вашему мнению как используется? Мне кажется, вы не до конца понимаете, что написали.

Устанавливаем делегированный обработчик правильно, смотрим у объекта события свойство currentTarget:

$(document).on('click', '.e-1', function(e) {
  console.log(e.currentTarget);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы