2016-02-11 48 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