@Nohaga

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

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

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

Мне нужно именно проверку на выполнение условия, а не отдельную функцию на клик элемента.
  • Вопрос задан
  • 303 просмотра
Пригласить эксперта
Ответы на вопрос 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, ведь, как я понял по синтаксису это он (не факт, ибо мода на запись через $ пошла дальше его).
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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