Предположим, что у нас есть структура HTML, такая как
<div id="container">
<div id="nested">
<span id="someElement"></span>
</div>
</div>
... и наша цель состоит в том, чтобы прослушиватель событий на #container
только! Таким образом, мы связываем прослушиватель (код jQuery)
$("#container").on('click', function(event) {
alert("container was clicked");
});
Это работает, конечно, но моя проблема с этим подходом заключается в том, что, поскольку события обычно пузырятся, этот слушатель также срабатывает, если мы на самом деле нажимаем #nested
или #someElement
. Мое текущее решение только обрабатывает клик, когда щелчком #container
является сравнение this
с event.target
$("#container").on('click', function(event) {
if(this === event.target) {
alert("container was clicked");
}
});
Мой вопрос: Это считается "лучшей практикой"? Есть ли лучший способ с jQuery выполнить один и тот же результат "из коробки"?
Пример в действии: http://jsfiddle.net/FKX7p/