[英]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.