Javascript 如何向自制事件发送属性?

Javascript 如何向自制事件发送属性?,javascript,jquery,events,Javascript,Jquery,Events,如何向自制事件发送属性? 我试着这样做…也许exist是解决这个函数的另一个结构 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); } $(

如何向自制事件发送属性? 我试着这样做…也许exist是解决这个函数的另一个结构

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!'});
你可以这样做-

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

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

$('#mme').trigger(e);
演示
------>

您可以这样做-

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

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

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

Demo
------>

您似乎同时需要事件和方法

// 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处理程序、本机处理程序,然后调用本机方法。只有处理程序才会传递参数。调用本机方法时不带参数

来自jQuery v1.9.1第3018行:

elem[ type ]();
type是事件的名称

此JSFIDLE显示调用的所有3个:

您似乎同时需要事件和方法

// 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处理程序、本机处理程序,然后调用本机方法。只有处理程序才会传递参数。调用本机方法时不带参数

来自jQuery v1.9.1第3018行:

elem[ type ]();
type是事件的名称

此JSFIDLE显示调用的所有3个:

这是一个很好的解决方案,我以前使用过,但在这种情况下,我不能做类似于mme.eventN({property:'Hello World!'})的事情。这是一个很好的解决方案,我以前也使用过,但在这种情况下,我不能做类似于mme.eventN({property:'Hello World!'})的事情我用传递参数的DOM处理程序更新了我的答案非常有趣,我从来没有想过在事件之前设置“开”我用传递参数的DOM处理程序更新了我的答案非常有趣,我从来没有想过在事件之前设置“开”