有人可以帮我阻止 onclick 事件上的气泡效应吗?
我懂了:
<script language="javascript">
function1(){
alert('test');
}
function2(){
alert('test');
}
</script>
<div onclick="function1()">
<span onclick="function2()">test</span>
blablablabla
</div>
Run Code Online (Sandbox Code Playgroud)
现在,当我单击跨度时,我不希望启动功能 1,而只启动功能 2。如何做到这一点?我是否必须编辑该函数,或者添加一些更多的全局java?
将您的附件更改function2为如下所示:
<span onclick="function2(event)">
Run Code Online (Sandbox Code Playgroud)
然后,在函数内:
function function2(e) {
if (e.stopPropagation) {
e.stopPropagation();
}
else {
e.cancelBubble = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我们在那里做什么:
onclick.stopPropagation通过使用(DOM 标准)或cancelBubble(特定于 IE)告诉它不要冒泡通过使用像jQuery、YUI、Closure或其他任何一个像样的 JavaScript/DOM 库,可以使很多事情变得更简单。这些平滑浏览器差异等。