Это возможно заставить исполнение .Click () для всех элементов, даже те, которые подходят?

StackOverflow https://stackoverflow.com/questions/3744733

Вопрос

Рассмотреть возможность Этот код:

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') что поднимает указанное событие. Вы можете найти больше информации в Триггерная справка по теме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top