Javascript 代码>在条件之外工作?答案没有那么简单,所以我在编辑中回答。我希望我说得够清楚:)啊。。。我想我明白了。event.target不是(一定)添加了事件侦听器的元素吗?我认为在这种情况下,event.target和this本质上是相同的。相反,在这种情况下,
Javascript 代码>在条件之外工作?答案没有那么简单,所以我在编辑中回答。我希望我说得够清楚:)啊。。。我想我明白了。event.target不是(一定)添加了事件侦听器的元素吗?我认为在这种情况下,event.target和this本质上是相同的。相反,在这种情况下,,javascript,addeventlistener,stoppropagation,Javascript,Addeventlistener,Stoppropagation,代码>在条件之外工作?答案没有那么简单,所以我在编辑中回答。我希望我说得够清楚:)啊。。。我想我明白了。event.target不是(一定)添加了事件侦听器的元素吗?我认为在这种情况下,event.target和this本质上是相同的。相反,在这种情况下,event.target是点击最深的元素——即使那只是一片叶子。是吗?是的。event.target是触发事件的元素(最深)。不要与event.currentTarget混淆@Rounin没有问题。这是一场有趣的比赛。另外,在事件处理程序中使用
代码>在条件之外工作?答案没有那么简单,所以我在编辑中回答。我希望我说得够清楚:)啊。。。我想我明白了。event.target不是(一定)添加了事件侦听器的元素吗?我认为在这种情况下,
event.target
和this
本质上是相同的。相反,在这种情况下,event.target
是点击最深的元素——即使那只是一片叶子。是吗?是的。event.target是触发事件的元素(最深)。不要与event.currentTarget混淆@Rounin没有问题。这是一场有趣的比赛。另外,在事件处理程序中使用“this”关键字时要小心。它实际上是对event.currentTarget的引用,通常会产生副作用。
<ul>
<li>One</li>
<li class="contains-submenu">Two
<ul>
<li>Two A</li>
<li class="contains-submenu">Two B
<ul>
<li>Two B I</li>
<li>Two B II</li>
<li>Two B III</li>
</ul>
</li>
<li>Two C</li>
</ul>
</li>
<li>Three</li>
<li class="contains-submenu">Four
<ul>
<li>Four A</li>
<li class="contains-submenu">Four B
<ul>
<li>Four B I</li>
<li>Four B II</li>
<li>Four B III</li>
</ul>
</li>
<li>Four C</li>
</ul>
</li>
</ul>
var activateToggle = true;
function toggleSubmenu() {
if (activateToggle === true) {
this.classList.toggle('show-submenu');
activateToggle = false;
}
setTimeout(function(){activateToggle = true}, 100);
}