Я новичок в jQuery и пытаюсь понять концепцию захвата и всплытия.
Я прочитал много статей, но в большинстве из них описывалось распространение событий для Javascript.
Предположим, у нас есть следующий HTML-код:
<div id="outer">
outer
<div id="inner">
inner
</div>
</div>
Захват — это фаза, на которой мы спускаемся по элементам DOM, а всплытие — когда мы поднимаемся.
В Javascript вы можете решить, по какому пути следовать (используя параметры true или false):
element.addEventListener('click', doSomething, true) --> capture phase
element.addEventListener('click', doSomething, false) --> bubble phase
Есть ли что-то подобное для jQuery, чтобы обозначить, какой способ следовать, кроме пути JavaScript?
Также jQuery использует фазу по умолчанию? Например пузырь?
Потому что я использовал следующий код, чтобы проверить это:
CSS
<style>
div {
border: 1px solid green;
width: 200px;
}
</style>
JQuery
<script>
$(document).ready(function(){
$('div').click(function(){
$(this).animate({'width':'+=10px'},{duration: 3000})
});
});
</script>
Похоже, что когда я нажимаю на внешний div, только этот div анимируется до большего div. Когда я нажимаю на внутренний div, оба div анимируются до больших div.
Я не знаю, ошибаюсь ли я, но этот тест показывает, что метод распространения браузера по умолчанию — это пузырь.
Пожалуйста, поправьте меня, если я ошибаюсь.