我使用Javascript,我想创建授权类。
我的代码是
function Auth() {
this.action;
this.run = function() {
$("#auth-dialog-id").dialog({
width: 400,
height: 250,
modal: true,
buttons: {
OK: function() {
this.action();
$(this).dialog("close");
},
Cancel: function() {
$(this).dialog("close");
}
}
});
};
}
呼叫
auth = new Auth();
auth.action = a;
auth.run();
}
function a() {
alert("test");
}
但我有错误
对象#没有方法'动作'
有人能帮助我吗?
答案 0 :(得分:0)
由于您已更正this.action = a
问题,因此问题出在OK
按钮回调上下文中。在按钮内部,单击回调this
不会引用auth
实例。
这里有一个可能的解决方案是使用一个闭包变量,如下所示
function Auth() {
var self = this;
this.run = function () {
$("#auth-dialog-id").dialog({
width: 400,
height: 250,
modal: true,
buttons: {
OK: function () {
self.action();
$(this).dialog("close");
},
Cancel: function () {
$(this).dialog("close");
}
}
});
};
}
auth = new Auth();
auth.action = a;
auth.run();
演示:Fiddle