0

这是我的问题:

我有 2 个变量:

var func = function() {
   $(dialog).dialog("close");
}

var m = "hello"

我调用一个方法

this.xyz(func , m)

方法 xyz 看起来像

xyz : function(func, m) {
   //there is an OK button on which I am calling click event
   click: function() {
         func();
   }
}    

Approach-1 现在在 xyz 中,如果我替换func(); $(dialog).dialog("close"); 完美运行

方法 2,但使用 func(); 按钮单击不会关闭对话框

我想使用方法 2 但无法使其工作

谢谢

4

2 回答 2

0

Looks like you're forgetting that new scope will lose this, you have to bind or apply your new function.

xyz : function(func, m) {
   //there is an OK button on which I am calling click event
   click: function() {
         func.apply(this);
   }
}  
于 2012-08-24T01:28:46.577 回答
0

只需传递变量,它就可以工作

xyz : function(func, m) {
 //there is an OK button on which I am calling click event
 click: func 
}
于 2012-08-24T02:10:20.193 回答