Задать вопрос
@Nohaga

Как определить что кликнул на нужный элемент?

var alerte = $('.alerte.active'); 
$('body').on('click', function(e)
{
    if (alerte.has(e.target).length===0) {}
});

пытаюсь так определить, но так не работает по нормальному.
Как сделать чтоб всегда работало и когда кликаеш на сам элемент и когда на дочерние элементы.

Мне нужно именно проверку на выполнение условия, а не отдельную функцию на клик элемента.
  • Вопрос задан
  • 327 просмотров
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик расширенный
    13 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
  • Skillbox
    JavaScript
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 2
ReaverJS
@ReaverJS
$('body').on('click', '.alerte.active', function() {
    // do something
});

Еще лучше - вообще не вешать эвенты на body.
$('.alerte.active').on('click', function(e)
{
    // do something
});


Как сделать чтоб всегда работало и когда кликаеш на сам элемент и когда на дочерние элементы.

Так и работает.
Ответ написан
ArsenyMatytsyn
@ArsenyMatytsyn Куратор тега JavaScript
Руководитель frontend направления, предприниматель
Ты пытаешься словить всплывающее событие по элементам. Вот, почитай. Чтобы такой проблемы не было, используй то, что предложил ReaverJS во втором варианте. Единственное что, тут будет нюанс, при наличии нескольки таких элементов логика может (помним, что это все же js) сломаться, поэтому лучше проверять на длину элементов с таким набором классов и каждому давать отслеживающее события клика. Ну или же повесить прямо в html onclick.

Если же проблема все же в глубокой настройке, то рекомендую вернуться в ссылке на статью про всплывающие события и перехват, они в самом начале этого ответа. Или почитать, как это происходит средствами jQuery, ведь, как я понял по синтаксису это он (не факт, ибо мода на запись через $ пошла дальше его).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽