Учитывая упрощенный документ, подобный этому:
<div id="outerDiv">
<div id="innerDiv">
<input id="theInput" />
</div>
</div>
Если бы я нажал на #theInput
, событие щелчка всплыло бы до #innerDiv
, а затем #outerDiv
. Что я хотел бы сделать, так это установить обработчик на #outerDiv
для прослушивания этих кликов, а затем осмотреть «цепочку пузырей», чтобы увидеть, какие элементы ранее получали такое же событие нажатия.
Так, например, нажатие на #theInput
обработчик в #outerDiv
даст мне [#outerDiv, #innerDiv, #theInput]
. Если бы я щелкнул за пределами #theInput
, но все еще внутри #innerDiv
, результат был бы [#outerDiv, #innerDiv]
Просто чтобы уточнить, настоящий документ не так прост, как этот, и на каждом уровне может быть любое количество детей или братьев и сестер. Также, когда я ссылаюсь на #theInput
, я имею в виду сам элемент, то есть я не ищу массив идентификаторов. Наконец, учитывая, что может быть любое количество элементов, я бы хотел избежать добавления дополнительных обработчиков к промежуточным элементам.
jQuery можно только приветствовать в моем доме.