在Javascript/jQuery中将匿名函数传递给自定义事件触发器

Jay*_*Jay 4 jquery callback anonymous-function jquery-callback custom-events

我正在尝试触发DOM元素上的自定义事件,并传递匿名函数,以便在触发事件时执行(使用jQuery).所以像这样:

$(some-dom).live("custom_event", function(evtObj, data, callback) {
//do some stuff
callback();
});

$(some-button).click(function() {
    $(some-dom).trigger("custom_event", some_data, function () {
        alert("this is my anonymous function passed as event data");
    }
});
Run Code Online (Sandbox Code Playgroud)

所以单击"some-button"应该在"some-dom"上触发"custom_event"并导致我在触发器上传递的匿名函数被执行.对?但是浏览器说自定义事件中的回调未定义.难道我做错了什么?是不允许传递匿名函数作为触发器参数?谢谢

use*_*716 7

您需要将多个额外参数传递给trigger()Array.(可以在没有Array的情况下传递一个参数.)

$(some-dom).click(function() {      //  v-----pass extra args in an Array
    $(some-dom).trigger("custom_event", [some_data, function () {
        alert("this is my anonymous function passed as event data");
    }]);
 //  ^------Array
});
Run Code Online (Sandbox Code Playgroud)

示例: http ://jsfiddle.net/NRSJ2/