在类似“this”的事件回调中,`event.target`保证是`this`的后代/等于`this`;点击";用JavaScript?
如果我通过在类似“this”的事件回调中,`event.target`保证是`this`的后代/等于`this`;点击";用JavaScript?,javascript,dom,javascript-events,Javascript,Dom,Javascript Events,如果我通过event.target的.parentNode递归,我是否保证能够到达此?规范中有没有提到这一点 这里有一些代码来演示这一点,如果event.target是this var isaderntof=函数(子函数、父函数){ 如果(子项===父项){ 返回true; } if(child==null){ 返回false; } 返回isAgentOf(child.parentNode,parent); }; var节点=document.queryselectoral(“*”); 对于(
event.target
的.parentNode
递归,我是否保证能够到达此
?规范中有没有提到这一点
这里有一些代码来演示这一点,如果event.target
是this
var isaderntof=函数(子函数、父函数){
如果(子项===父项){
返回true;
}
if(child==null){
返回false;
}
返回isAgentOf(child.parentNode,parent);
};
var节点=document.queryselectoral(“*”);
对于(var i=0;i
HTML
A
B
C
D
EF
B 123
是
事件被调度到其目标EventTarget
,并触发在那里找到的任何事件侦听器。冒泡事件将触发通过向上跟踪EventTarget
的父链找到的任何其他事件侦听器,检查在每个后续EventTarget
上注册的任何事件侦听器。此向上传播将持续到并包括文档
请注意,还有一些非冒泡事件,如focus
,其中event.target==this
Yes
事件被调度到其目标EventTarget
,并触发在那里找到的任何事件侦听器。冒泡事件将触发通过向上跟踪EventTarget
的父链找到的任何其他事件侦听器,检查在每个后续EventTarget
上注册的任何事件侦听器。此向上传播将持续到并包括文档
请注意,还有一些非冒泡事件,如focus
,其中event.target==this
var isADescendentOf = function (child, parent) {
if (child === parent) {
return true;
}
if (child === null) {
return false;
}
return isADescendentOf(child.parentNode, parent);
};
var nodes = document.querySelectorAll("*");
for (var i = 0; i < nodes.length; i++) {
nodes[i].addEventListener("click", function (event) {
console.log(isADescendentOf(event.target, this));
});
}
<div id="a">A
<div id="b">B
<div id="c">C
<div id="d">D
<div id="e">E</div> <span id="f">F</span>
<button>B</button> <span>1<span>2<span>3
</span></span>
</span>
</div>
</div>
</div>
</div>