0

有人可以帮助我停止 onclick 事件的气泡效应吗?

我懂了:

<script language="javascript">
  function1(){
    alert('test');
  }
  function2(){
    alert('test');
  }
</script>
<div onclick="function1()">
  <span onclick="function2()">test</span>
  blablablabla
</div>

现在,当我单击跨度时,我不想启动功能 1,而只是启动功能 2。如何做到这一点?我是否必须编辑该函数,或者为此添加更多全局 java?

4

1 回答 1

4

改变你的附件function2是这样的:

<span onclick="function2(event)">

然后,在函数内:

function function2(e) {
    if (e.stopPropagation) {
        e.stopPropagation();
    }
    else {
        e.cancelBubble = true;
    }
 }

我们在那里做什么:

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

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

于 2013-08-25T22:41:02.957 回答