internet-explorer - event.preventDefault() 在 IE 11 中不适用于自定义事件

标签 internet-explorer polymer custom-event

我有一个同步触发自定义事件的 polymer 元素,我想知道是否使用 event.preventDefault() 取消了该事件。使用 event.defaultPrevented 我可以知道预期的操作。这适用于所有浏览器(Chrome、Canary、Firefox、Opera),但在 IE 11(不担心旧浏览器)上不起作用。 我知道我可以在我的事件上设置一些属性并检查我正在触发和处理的位置,但想知道是否还有其他我错过的东西。

您可以试用以下代码 http://jsbin.com/husamupi/1/edit

最佳答案

我遇到了同样的问题,可以通过以下 hack 解决:

var event = document.createEvent('CustomEvent');
event.initCustomEvent('custom', true, true, {});
event.preventDefault = function () {
    Object.defineProperty(this, "defaultPrevented", {get: function () {return true;}});
};
event.preventDefault();
event.defaultPrevented; // true

关于internet-explorer - event.preventDefault() 在 IE 11 中不适用于自定义事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23349191/

相关文章:

javascript - 行为不处理使用 setAttribute 添加的属性

javascript - Google 地点自动完成功能在 IE 和 Safari 中不起作用

css - IE 划掉伪元素 CSS?

javascript - 在类中完成的自定义事件

javascript - 如何在没有 JavaScript 库的情况下检测过渡结束?

javascript - IE7和IE8下拉框中不显示更大的内容

javascript - 允许 Polymer paper-dialog 的模糊(专注于其他项目 - 输入字段在 paper-dialog 之外)

html - Polymer:禁用 HTML 导入缓存

javascript - 将属性传递给 Polymer 中的组件

javascript - javascript 中自定义事件的用途是什么?