Это возможно заставить исполнение .Click () для всех элементов, даже те, которые подходят?
-
04-10-2019 - |
Вопрос
Рассмотреть возможность Этот код:
HTML:
<div class='a'>a</div>
<div class='b'>b</div>
<div id='log'></div>
CSS:
.a, .b {
width: 100px;
height: 100px;
border: 1px solid black;
position: absolute;
text-align: right;
}
.a {
left: 100px;
top: 100px;
}
.b {
left: 150px;
top: 150px;
}
JS:
$('*').click(function(e) {
log(this.nodeName + ' ' + this.className);
});
function log(s) {
$('#log').append(s + '<br />');
}
Если пересечение нажат, .click()
для .a
не вызывается.
Есть ли встроенный метод, чтобы заставить выполнение click()
Для всех элементов, а не только топ-один и его родители, или я должен реализовать это сам?
Решение
Я думаю, что поведение, которое вы наблюдаете, является правильным. При нажатии на верхний элемент один внизу не получит событие щелчка, несмотря на то, что он выглядит в области «нажатия». Как обходной путь, вы можете вручную вызвать это клики события:$('.a').click()
.
Призыв click
без аргументов эквивалентно trigger('click')
что поднимает указанное событие. Вы можете найти больше информации в Триггерная справка по теме.
Не связан с StackOverflow