2014-02-16 68 views
-3

第三個參數'false'在波紋管代碼的最後一行代表什麼?addEventListener('click',stopEvent,false)中的false是什麼意思?

var parent = document.getElementById('parent'), 
child = document.getElementById('child'), 
op  = document.getElementById('op'), 
op2 = document.getElementById('op2'); 

parent.addEventListener('click', function() { 
    op.innerHTML += '<p>click registered</p>'; 
}, false); 

function stopEvent (e) { 
    e.stopPropagation(); 
    op2.innerHTML += '<p>propagation stopped</p>'; 
} 

child.addEventListener('click', stopEvent, false); 
+6

也許看文檔? https://developer.mozilla.org/en-US/docs/Web/API/EventTarget.addEventListener – Tomalak

+0

如果我記得正確,事件冒泡的反面。 – Johan

+0

是的,文檔說:如果未指定,useCapture默認爲false。但爲什麼? – Blix

回答

1

如果它是真的,它會被視爲在所有其他功能的開始(它被稱爲captured),如果不是,它只是簡單地添加到列表的末尾(稱爲bubbled),假設你有:

parent.addEventListener('click', function() { console.log("nocapture1"); }, false); 
parent.addEventListener('click', function() { console.log("usecapture1"); }, true); 
parent.addEventListener('click', function() { console.log("nocapture2"); }, false); 
parent.addEventListener('click', function() { console.log("usecapture2"); }, false); 

那麼,一旦被點擊,你就必須與他們在控制檯順序是:

usecapture1 
usecapture2 
nocapture1 
nocapture2 
+0

謝謝。這就是我所追求的。對於JavaScript新手通過文檔並不總是有幫助的。真實的例子是祝福。 – Blix

相關問題