javascript - jquery stopPropagation() 并发送 "event"?

标签 javascript jquery

(jsbin)

我创建了一个表格,里面有一个按钮。

enter image description here

表格有 onclick 事件以及内部按钮

但是当我按下按钮时,事件就会冒泡到表中。 (我收到 2 个警报)

所以我使用了ev.stopPropagation();

并且它正在工作。但为了让它发挥作用,我必须这样做:

在 html 中:

<input type='button' onclick='doWork(event);'/>

在 J 中:

function doWork(ev)
{
  ev.stopPropagation();
  alert('button');
}
  • 这是正确的方法吗?
  • 必须我发送事件吗?我知道不同的浏览器使用不同的事件

最佳答案

IE不需要传递事件对象,我们可以使用window.event来访问它。 Old IE versions have not supported e.stopPropagation 。因此,出于跨浏览器兼容性的原因,您应该尝试以下操作:

function doWork(e)
{
    var evt = e || window.event;

    if (evt.stopPropagation) {
        evt.stopPropagation();
    }
    else {
        evt.cancelBubble = true;
    }

    alert('button');
}

关于javascript - jquery stopPropagation() 并发送 "event"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14932115/

相关文章:

javascript - 如何使用JavaScript formate在mvc中将@html.dropdownlist名称与id绑定(bind)

javascript - Nodejs 似乎在等待包含 Promises 的函数解析之前返回响应

javascript - 提交表单并重新加载

javascript - 是否可以通过 iframe 上传一个文件和多个数据?

javascript - 需要一些帮助来理解 JS 模块模式的基础知识

javascript - 内容脚本的替代方案?

javascript - 用于 Javascript 的 Facebook SDK,FB.login() 回调未触发(异步调用永远不会得到响应?)

javascript - Youtube 如何自动播放其视频?

jquery - 限制 jQuery fadeIn()

javascript - 设置为 navbar-fixed-top 时,单页 Bootstrap 导航栏切换在移动模式下无法正常工作