Onclick事件冒泡

Mbr*_*r88 1 javascript

有人可以帮我阻止 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?

T.J*_*der 5

将您的附件更改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)

我们在那里做什么:

  1. 赋予事件对象的函数可见性(通过从onclick.
  2. stopPropagation通过使用(DOM 标准)或cancelBubble(特定于 IE)告诉它不要冒泡

通过使用像jQueryYUIClosure其他任何一个像样的 JavaScript/DOM 库,可以使很多事情变得更简单。这些平滑浏览器差异等。