我想从失败的jQuery方法访问对象自己的函数。
function obj(){
this.send = function(){
$.get("send.php",null,function(data){
this.success();
}).error(function(){ this.fail(); });
}
this.fail = function(){
alert("fail");
}
}
var o = new obj();
o.send();
给出此错误:TypeError: this.fail is not a function
如何在jQuery中访问函数fail
?
答案 0 :(得分:2)
在第5行,fail
不会被同一个对象调用,因此this
没有相同的引用,因此没有方法失败。我们说您改变了背景。
诀窍是使用通常称为 self
或 that
或 _this
的变量。我更喜欢self
。
function obj(){
var self = this;
this.send = function(){
$.get("send.php",null,function(data){
this.success();
}).error(function(){ self.fail(); });
}
this.fail = function(){
alert("fail");
}
}
它应该成功,是的,javascript看起来像一个可惜的语言。但是一旦你克服了一些问题,你就会喜欢这些可能性。