javascript - 有没有办法访问 onclick 属性中的 JavaScript 事件?

标签 javascript events html

假设我需要在 attribute 中编写一个 onclick 处理程序,如下所示:

<a href='#' onclick='DoSomething(); event.stopPropagation(); return false;'>
    ...</a>

我知道这是不好的形式,但暂时假设我必须使用一个属性。

很遗憾 event 没有定义。我试过 e 也没有定义。有什么方法可以访问属性内的事件对象,或者有什么其他方法可以停止事件传播吗?

最佳答案

获取事件对象的位置取决于浏览器。一些(所有?)IE 版本将它放在 window.event 中,但其他所有人都将它作为参数传递。所以,你最终不得不像这样跳一段愚蠢的小舞:

function DoSomething(event) {
    event = event || window.event;
    event.stopPropagation();
    // Do useful work.
    return false;
}

然后像这样设置onclick:

<a href="javascript:void(0)" onclick="DoSomething(event)">

我还切换到 javascript:void(0),这样您就不会遇到常见的“# interpreted as an in-page fragment”问题。

关于javascript - 有没有办法访问 onclick 属性中的 JavaScript 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6975758/

相关文章:

android - ArrayList 元素修改时触发事件

javascript - Bootstrap 单选输入和按钮组不改变 DOM

html - 在移动设备上禁用滚动

javascript - 点击图片打开文件上传

javascript - Django:如何从 Django View 中的 ajax 调用中检索序列化的复选框值?

javascript - 访问导出的模块

javascript - 如何在选项标签中触发事件?

javascript - 从父级捕获 iFrame onhashchange 事件

javascript - 使用 AJAX 加载图像时替换 CSS 背景

javascript - 当我加载下一页时,如何保持 toastr.js 通知打开?