почему на * set_capture * элемента влияет * set_capture * его родителя? - PullRequest
0 голосов
/ 17 июня 2011

почему этот код:

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 * для inner он имеет значение false, что означает, что события должны начинаться с 'inner', не так ли?

Я понимаю, что если мы установим * set_capture * для external в false, то результатом будет inner, за которым следует outer, но я не понимаю, как значение * set_capture * для external должно оказывать какое-либо влияние на результат здесь.

1 Ответ

0 голосов
/ 17 июня 2011

нет, это не должно - аргумент use_capture устанавливает, в какой части обработки события вызывается это событие

  1. часть - захват (use_capture = true) он начинается от окна до самого глубокого элемента в дереве

  2. часть пузырится он начинается с самого глубокого элемента и уходит в окно

(в вашем случае внешний является первым из-за того, что он запускается в первой части)

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

...