我有一个同步触发自定义事件的 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/