我有一个确认弹出窗口,询问是或否,这是代码:
Confirm({
Title: 'Warning',
Message: 'Are you sure?',
Buttons: [{
text: 'Yes',
callback: function(){
RRSubmitRemoveReportRequest($(this));
},
highlighted: true
}, {
text: 'No)',
callback: null,
type: 'no'
}]
});
如果发送参数$(this),我应该使用匿名函数,否则它会立即调用函数,有人可以解释一下吗? 感谢
答案 0 :(得分:4)
通过一个例子很容易理解:
function foo(i){
return i*10;
}
var x = foo(1); // execute foo with 1 parameter;
var x = function(){ // creates a callback to the foo function.
foo(1);
};
var x = foo; // pointer to foo function and then:
x(1);
最重要的是,回调应该是函数,将来会在某个地方调用,而不是函数的值。
答案 1 :(得分:2)
callback
属性需要设置为function
。
如果你这样做:
callback: RRSubmitRemoveReportRequest($(this))
您要将callback
设置为RRSubmitRemoveReportRequest
功能的返回值。
你需要传递一个函数。 RRSubmitRemoveReportRequest
是一个函数,RRSubmitRemoveReportRequest($(this))
是一个函数调用,所以它已经运行并且使用了它的返回值。
当你这样做时:
callback: function(){
RRSubmitRemoveReportRequest($(this));
}
您正在传递一个函数,在调用时,将正确调用RRSubmitRemoveReportRequest
。