我是 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
除了 JavaScript 方式之外,jQuery 是否有类似的东西来表示遵循哪种方式?
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。
不知道是不是我记错了,不过这个测试显示浏览器默认的传播方式是冒泡的。
如果我错了,请纠正我。