我有一个两级ul / li菜单,其中li可以触发不同的onclick事件。
单击一个ul li ul项目时,似乎会触发父事件(ul li)。
我能否轻松避免这种情况。
(我正在考虑使用计时器来捕获第二个事件,但认为这是一个丑陋的修复......)
此致 / T
答案 0 :(得分:8)
我想你必须停止事件冒泡
因此,如果您使用的是直接javascript,则可以event.cancelBubble = true
否则,如果您使用的是jQuery,则可以使用event.stopPropagation()
或event.stopImmediatePropagation()
答案 1 :(得分:2)
找到适当的词来谷歌搜索并得到答案。 也许这就是你要找的东西。
答案 2 :(得分:0)
代替event.stopPropagation()
来考虑:
function myFunction() {
if (event.myFunctionResolved == undefined) {
event.myFunctionResolved = true;
// your logic here
}
}
这样做的好处是不会停止该事件,因此将执行可能正在监听该事件的其他脚本。