Onclick事件冒泡

时间:2013-08-25 22:30:40

标签: javascript

有人可以帮我解决onclick事件中的气泡效应吗?

我明白了:

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

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

1 个答案:

答案 0 :(得分:3)

function2的附件更改为:

<span onclick="function2(event)">

然后,在函数中:

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

我们在那里做什么:

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

    通过使用像jQueryYUIClosureany of several others这样不错的JavaScript / DOM库,可以简化很多这样的工作。这些平滑的浏览器差异等等。