Jquery 如何在连接事件时添加回调函数?

Jquery 如何在连接事件时添加回调函数?,jquery,Jquery,我有一个wireEvents函数,它将javascript与表单事件绑定在一起。比如说, $(document).on('click', '#cancelEdit', cancelEdit); 我这样做是因为cancelEdit按钮是稍后从jsRender模板添加的。它很好用。单击按钮时,将调用cancelEdit函数 var cancelEdit = function (event) { event.preventDefault(); ... };

我有一个wireEvents函数,它将javascript与表单事件绑定在一起。比如说,

$(document).on('click', '#cancelEdit', cancelEdit);
我这样做是因为cancelEdit按钮是稍后从jsRender模板添加的。它很好用。单击按钮时,将调用cancelEdit函数

var cancelEdit = function (event) {
        event.preventDefault();
        ...
    };
但是现在我想像这样在cancelEdit上添加一个回调函数

var cancelEdit = function (event, callback) {
        event.preventDefault();
        ...
    };
我应该如何更新事件连接语句?像这样

$(document).on('click', '#cancelEdit', cancelEdit('click', cancelEditCallBack));
我不能让它工作。请帮忙


谢谢。

您用函数调用交换了函数引用。现在,您应该在第二个定义中包装回调:

$(document).on('click', '#cancelEdit', function() {cancelEdit('click', cancelEditCallBack) });

您用函数调用交换了函数引用。现在,您应该在第二个定义中包装回调:

$(document).on('click', '#cancelEdit', function() {cancelEdit('click', cancelEditCallBack) });

您可以使用data参数向回调传递其他参数

$(document).on('click', '#cancelEdit', {cancelEditCallBack: cancelEditCallBack}, cancelEdit);

var cancelEdit = function (event) {
    event.preventDefault();
    event.data.cancelEditCallBack();
    ...
};

您可以使用data参数向回调传递其他参数

$(document).on('click', '#cancelEdit', {cancelEditCallBack: cancelEditCallBack}, cancelEdit);

var cancelEdit = function (event) {
    event.preventDefault();
    event.data.cancelEditCallBack();
    ...
};

为什么不触发您自己的自定义事件,您可以将事件侦听器添加到其中

var cancelEdit = function (event) {
    event.preventDefault();
    $(event.currentTarget).trigger("mycustomevent")
};

$(document).on("mycustomevent", "#cancelEdit", function (e) {
    // this is your callback
})

为什么不触发您自己的自定义事件,您可以将事件侦听器添加到其中

var cancelEdit = function (event) {
    event.preventDefault();
    $(event.currentTarget).trigger("mycustomevent")
};

$(document).on("mycustomevent", "#cancelEdit", function (e) {
    // this is your callback
})