所有,我知道在 Dom 2 级事件模型中,存在事件捕获和事件气泡。但我就是不知道 jquery 如何处理它们。所以我用这个.bind
方法做了一些实验。这是我的代码。请查看它。
<script>
$(function() {
$('*').each(function(){
var current = this;
$(this).bind("dblclick",function(event){console.log('Capture for ' + current.tagName + '#'+ current.id +
' target is ' + event.target.id);});
});
});
</script>
<body id="greatgrandpa">
<div id="grandpa">
<div id="pops">
<img id="example" src="designer/templates/thumbnails/2ColsTemplate.PNG" />
</div>
</div>
</body>
输出如下所示
Capture for IMG#example target is example
Capture for DIV#pops target is example
Capture for DIV#grandpa target is example
Capture for BODY#greatgrandpa target is example
Capture for HTML# target is example
当我使用event.stopPropagation();
事件处理程序时,将停止冒泡dblclick
事件。
但我有 2 个问题。根据日志写入顺序,我猜测该bind
方法使事件在事件气泡中(从 dom 的底部到顶部)而不是在事件捕获(从 dom 的顶部到底部)中触发。另一个问题是是否有可能在事件捕获期间触发事件?谢谢。
谢谢。