【问题标题】:Onclick event bubbling [duplicate]Onclick事件冒泡[重复]
【发布时间】:2023-03-07 06:44:02
【问题描述】:

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

我知道了:

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

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

【问题讨论】:

  • "global java" - Java 不是 Javascript。不要混淆两者。

标签: javascript


【解决方案1】:

function2的附件改成这样:

<span onclick="function2(event)">

那么,在函数内:

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

我们在那里做什么:

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

通过使用像 jQueryYUIClosureany of several others 这样的体面的 JavaScript/DOM 库,可以使这些东西变得更简单。这些平滑的浏览器差异等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-16
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-20
    • 2011-08-23
    相关资源
    最近更新 更多