我正在寻找一种方法来阻止点击事件在单击父元素时将DOM继续向下移动到嵌套的子元素(捕获阶段)。
这将是阻止点击事件冒泡的e.stopPropogation()
函数的反转。
是否有本机JS功能?
编辑03/10 Link to example
编辑03/11
函数调用中的错误 - 它是stopPropagation()
,而不是stopPropogation()
。感谢@JackPattishall的发现。
答案 0 :(得分:0)
是的,在捕获阶段捕获事件有本机js函数。
在所有浏览器中,除了IE< 9之外,还有两个事件处理阶段。
事件首先下降 - 这称为捕获,然后冒泡。这种行为在W3C规范中是标准化的。
所有事件处理方法都忽略了句法阶段。使用addEventListener和last参数true只是在捕获时捕获事件的方法。
elem.addEventListener(type,handler,phase)
phase = true 处理程序设置在捕获阶段。 phase = false 处理程序设置在冒泡阶段。
为了更好地理解事件捕获和冒泡,您可以按照link
进行操作答案 1 :(得分:0)
okey,你要做的一件事就是在Dom的顶部使用stopPropogation()。
例如。你有一个表(#table1)和元素(tr,td)。 所以,如果我这样做:
table1.addEventListener("click",function(event){
event.stopPropagation();
console.log(this);
},true);
tableElem[2].addEventListener("click",function(event){
console.log(this);
});
tableElem[2].addEventListener("click",function(event){
console.log("hii");
});
该事件将在最高层被截获,传播将被停止。 stopPropogation()停止传播,无论拦截哪个步骤事件。