我有一个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));
我不能让它发挥作用。请帮忙。
谢谢。
答案 0 :(得分:2)
您使用函数调用交换了函数引用。您现在应该将回调包装在第二个定义中:
$(document).on('click', '#cancelEdit', function() {cancelEdit('click', cancelEditCallBack) });
答案 1 :(得分:2)
您可以使用data参数将其他参数传递给回调。
$(document).on('click', '#cancelEdit', {cancelEditCallBack: cancelEditCallBack}, cancelEdit);
var cancelEdit = function (event) {
event.preventDefault();
event.data.cancelEditCallBack();
...
};
答案 2 :(得分:1)
为什么不直接触发您可以添加事件监听器的自定义事件?
var cancelEdit = function (event) {
event.preventDefault();
$(event.currentTarget).trigger("mycustomevent")
};
$(document).on("mycustomevent", "#cancelEdit", function (e) {
// this is your callback
})