保留自定義屬性我有一個安裝在理論上是這樣[見琴 - >http://jsfiddle.net/GeZyw/]:捕捉的Javascript自定義事件的jQuery的()在第一個「級別」
var EventTest = function(element) {
this.element = element;
this.element.addEventListener('click', elementClick);
function elementClick() {
var event = document.createEvent('CustomEvent');
event.initEvent('myevent', false, false);
event['xyz']='abc';
event.customData='test';
console.log(event);
this.dispatchEvent(event);
}
}
var element = document.getElementById('test');
var test = new EventTest(element);
$(document).ready(function() {
$("#test").on('myevent', function(e) {
console.log('myevent', e);
});
});
我要的是建立一個在純JavaScript中的CustomEvent,使用一些屬性來豐富它,並觸發該事件,這樣它也可以通過像jQuery這樣的庫來捕捉。
正如你可以在小提琴中看到的那樣,CustomEvent觸發得很好,它實際上是用自定義屬性填充的 - 但是當它到達jQuery on()
時,自定義屬性從第一級消失。我的自定義屬性現在降級到e.originalEvent.xyz
等等。
這並不是很理想。我想至少我自己的屬性是在第一級。
此外,在一個完美的世界,我想擺脫大部分在分派的事件的標準特性,所以它包含了(理論上最優的):
e = {
xyz : 'abc',
customData : 'test'
}
那是不可能的?如果是這樣,我該怎麼做?
爲什麼downvote? – davidkonrad