簡體   English   中英

Javascript CustomEvent 詳細信息未通過

[英]Javascript CustomEvent detail not getting passed

我正在嘗試創建自定義 Javascript 事件。 該事件正常工作並觸發,但我傳遞它的“詳細信息”對象不可用。

這是我用來創建和調度事件的代碼:

var double_tap = new CustomEvent("doubleTap", {
    detail: {
        hello: 'world'  
    },
    bubbles: true,
    cancelable: true
});

this.dispatchEvent(double_tap);

然后我使用 jQuery 向正文添加一個事件偵聽器:

$('body').on('doubleTap', function( e ) { 
    console.log(e);
});

它確實觸發了,並且控制台日志發生了,但不幸的是,日志只輸出事件詳細信息,包括氣泡和可取消屬性,但從不輸出“詳細信息”對象,因此無法訪問該信息。

這里以jsbin為例,我在body的click事件上創建事件,這樣你就可以看到控制台; http://jsbin.com/looseroots/6

我希望能夠在觸發事件時從“詳細信息”對象中獲取數據。 我究竟做錯了什么? 我已經在 Chrome 和 iOS 上的 Safari 中對此進行了測試。

obj.addEventListener("eventName", function(e) {
console.log(e.your_property)
})

var event = new CustomEvent("eventName");
event.your_property = { key: "value" };

obj.dispatchEvent(event);

您可以在發送時在 CustomEvent 中創建屬性。

您需要訪問 originalEvent 屬性以獲取詳細信息

console.log(e.originalEvent.detail);

我發現以下提交: https : //github.com/jquery/jquery/commit/a90ff8c8c79bfcc32afd340a12f016f20a31d8b6

此修復程序位於 jQuery 的compat分支中,應從 jQuery 3.0 開始修復。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM