Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript addEventListener中的false(';click';,stopEvent,false)是什么意思?_Javascript - Fatal编程技术网

Javascript addEventListener中的false(';click';,stopEvent,false)是什么意思?

Javascript addEventListener中的false(';click';,stopEvent,false)是什么意思?,javascript,Javascript,在下面代码的最后一行中,第三个参数“false”代表什么 var parent = document.getElementById('parent'), child = document.getElementById('child'), op = document.getElementById('op'), op2 = document.getElementById('op2'); parent.addEventListener('click', function () {

在下面代码的最后一行中,第三个参数“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);
var parent=document.getElementById('parent'),
child=document.getElementById('child'),
op=document.getElementById('op'),
op2=document.getElementById('op2');
parent.addEventListener('click',函数(){
op.innerHTML+='单击注册

'; },假); 函数stopEvent(e){ e、 停止传播(); op2.innerHTML+='传播停止

'; } addEventListener('click',stopEvent,false);
它指定是否要捕获事件。在这种情况下,它不是必需的,因为它默认为
false
。有关更多信息,请参阅。

如果是真的,则会在所有其他添加的函数的开头考虑它(称为
捕获的
),如果不是,则只会简单地添加到列表的末尾(称为
冒泡的
),假设您有:

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

也许看看医生?如果我没有记错的话,则与事件冒泡相反。是的,文档中说:如果没有指定,useCapture默认为false。但是为什么?你的意思是,为什么它在代码中设置为
false
,即使它已经默认为
false
?如果默认为
false
,则
child.addEventListener('click',stopEvent')将是等效的。为了清晰起见,程序员可以选择将参数显式化。不,文档中说“如果为true,useCapture表示用户希望启动捕获。”和“请参阅以获取详细解释”。谢谢。这就是我想要的。对于javascript新手来说,阅读文档并不总是有帮助的。真正的例子是祝福。