使用onclick且防止冒泡事件的全浏览器兼容标准写法

字号+ 编辑: 种花家 修订: 种花家 来源: 原创 2023-12-06 我要说两句(1)

平时开发的时候会经常用到, 如果你确实通过我的代码解决了问题,别忘了点个“有用”再走。

说标准写法有点吹了, 可能是笔者并没有接触过太多的奇葩浏览器, 故有这种结论。有更多经验的小伙伴可以贴自己的代码出来

笔者经常用到的代码是:

function somefunc(obj, evt) {
    let e = (evt) ? evt : window.event;
    if (window.event) {
      e.cancelBubble = true;
    } else {
      e.stopPropagation();
    }
    
    // TODO
}

在dom里传两个参数, 一个是this对象一个事件

<div onclick="somefunc(this,event)"></div>

虽然在某些新ide里会提示event和onclick写法已过期, 但ie显然不这么想。

防止事件冒泡会应用到哪些场景?

比如你有两个div, 父子dom关系, 你不想让子dom绑定的事件同时让父dom事件触发, 就用到这个判断。其他场景下没必要写那么啰嗦。

阅完此文,您的感想如何?
  • 有用

    17210

  • 没用

    891

  • 开心

    2469

  • 愤怒

    218

  • 可怜

    466

1.如文章侵犯了您的版权,请发邮件通知本站,该文章将在24小时内删除;
2.本站标注原创的文章,转发时烦请注明来源;
3.Q群: 2702237 13835667

相关课文
  • JS如何防止父节点的事件运行

  • nodejs编写一个简单的http请求客户端代码demo

  • 使用Sublime Text3 开发React-Native的配置

  • 说一则为什么后端开发人员不选择node.js的原因

我要说说
网上嘉宾点评
1 楼 IP 222.168.***.91 的嘉宾 说道 : 很久前
你用的什么ide