2016-02-11 79 views
1

我无法创建和收听我在javascript中创建的自定义事件。我想我在这里错过了一些小东西,但我不知道是什么。下面是代码:Javascript,创建和收听自定义事件

document.body.addEventListener('launch', onLaunch); 
function onLaunch(item) { 
    console.log("laucnhed with", item); 
} 
function launch(id) { 
    console.log("launch", id); 
    const event = new CustomEvent("launch", {activity: id}); 

    document.body.dispatchEvent(event); 
} 

所以第一个日志“发射”,而ID显示正确,但第二个在onLaunch功能火灾正确,但该项目没有详细 - 记录item.detail是空值。需要做些什么才能将该活动属性正确传递给侦听器功能?谢谢!

回答

1

据当时Mozilla Developer Network文档:

CustomEvent.detail
初始化事件时传递的任何数据。

你需要用这样的事件的详细信息:

console.log("launched with", item.detail.activity); 

A中的自定义事件构造器的更详细的例子:

const event = new CustomEvent("launch", { detail: { activity: id } }); 

然后,你可以在事件监听器来改变你的日志可以找到here