0

如何将属性发送到自制事件?我尝试这样的事情......也许存在解决此功能的另一种结构?

var mme=document.getElementById('mme');

mme.event1=function(prop){
 alert(prop.property);
}
mme.event2=function(prop){
 alert(prop.property);
}
////////
mme.eventN=function(prop){
 alert(prop.property);
}

$(mme).trigger('eventX',{property:'Hello World!'});
4

2 回答 2

2

你可以这样做 -

$('#mme').on('event1', function (e) {
    console.log(e.hello);
});

var e = $.Event("event1", {
    hello: "Hello"
});

$('#mme').trigger(e);

演示------> http://jsfiddle.net/fh2eC/

于 2013-06-21T13:27:20.533 回答
1

看来您既想要事件又想要方法。

// Native Method
mme.event1 = function(argument) {
    alert(argument);
};

// Native Event Handler
mme.onevent1 = function(event, argument) {
    alert(argument);
};

// jQuery Event Handler
$(mme).on("event1", function(event, argument) {
    alert(argument);
});

当你触发一个事件时,jQuery 会调用 jQuery Handler,Native Handler,然后是 Native Method。只有处理程序将传递参数。调用本机方法时不带参数。

从 jQuery v1.9.1 开始,第 3018 行:

elem[ type ]();

type 是事件的名称。

这个 jsFiddle 显示所有 3 个被调用:http: //jsfiddle.net/nV8qg/2/

于 2013-06-21T14:22:29.790 回答