У меня есть DIV с классом foobar
и несколько DIV внутри этого DIV, которые не относятся к классу, но я полагаю, что они наследуют класс foobar
:
$('.foobar').on('click', function() { /*...do stuff...*/ });
Я хочу, чтобы это срабатывало только при нажатии где-нибудь в DIV, но не на его дочерних DIV.
Если вы не можете использовать pointer-events: none;
и ориентируетесь на современные браузеры, вы можете использовать composedPath
для обнаружения прямого щелчка по объекту, например, так:
element.addEventListener("click", function (ev) {
if (ev.composedPath()[0] === this) {
// your code here ...
}
})
Вы можете узнать больше о compedath здесь : https://developer.mozilla.org/en-US/docs/Web/API/Event/composedPath