2011-06-17 55 views
0

为什么是这个代码:为什么受其父代的* set_capture *影响的元素的* set_capture *

HTML:

<div id="outer" > 
    Outer Div 
    <div id="inner" > 
     Inner Div 
    </div> 
</div> 

的onload:

document.getElementById("outer").addEventListener("mousedown", function() { 
    alert('outer'); 
}, true); 

document.getElementById("inner").addEventListener("mousedown", function() { 
    alert('inner'); 
}, false); 

http://jsfiddle.net/fGZ3U/

给了我们一个警告outer随后警报inner

在内部的* use_capture *参数中,它被设置为false,这意味着事件应该从'内部'开始,不是吗?我知道如果我们将外层的* set_capture *设置为false,那么结果将会是inner,然后是outer,但是我不知道外层的* set_capture *值应该如何对这里的结果产生任何影响。

回答

0

没有它不应该 - use_capture参数集,其中事件处理的一部分是这样的事件触发

  1. 部分是捕获(use_capture =真) 它从窗口开始在树中的最深的元件

  2. 一部分鼓泡 它正在启动ftom最深元件并进入所述窗口

(在你的情况下外部是首先由于它在第一部分触发)

http://www.quirksmode.org/js/events_order.html

相关问题