使用自定义数据创建自定义DOM事件

时间:2018-02-13 05:33:45

标签: javascript typescript dom browser

我有这段代码:

   let event = new Event('sumanload', {
      value: 'foo'
    });

    window.dispatchEvent(event);

这是错误:

enter image description here

我想要做的是将自定义数据作为事件数据传递。有没有办法做到这一点?现在,如果你包含一个未知的属性,TypeScript会抱怨。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用CustomEvent而不是Event对象。自定义事件对象特别允许您将detail属性添加到在构造期间作为第二个参数传递的初始化对象。

let event = new CustomEvent('sumanload', {
    detail: 'foo'
});

window.dispatchEvent(event);

其中detail可以是任何数据类型,包括object。

我过去已成功将自定义属性直接附加到CustomEvent对象(如event.value = 'foo'中所述),但我不知道TypeScript是否允许您这样做。

如果您需要支持IE等旧版浏览器,请检查上面的MDN链接以获取polyfill。