我尝试扩展jQuery,但是当我调用myTest时将返回this.myTest.test()未定义...
谁能告诉我为什么...
(function($) {
$.fn.myTest=function() {
var x=function() {
this.myTest.test();
var b = function() {
this.myTest.coba();
}
}
x();
return this.each(function(){
});
};
$.fn.myTest.test = function(){
alert('test');
};
$.fn.myTest.coba = function(){
alert('coba');
};
$.fn.myTest.iseng = function(){
alert('iseng');
};
})(jQuery);
最佳答案
您从嵌套函数this.myTest.test();
中调用x
。因此this
不会指向$.fn.myTest
对象。
函数this.myTest.coba();
中的b
会遇到相同的问题。
要解决此问题,必须先存储$.fn.myTest
对象的上下文才能访问它:
$.fn.myTest=function() {
var self = this;
var x=function() {
self.myTest.test();
var b = function() {
self.myTest.coba();
}
}
x();
return this.each(function(){
});
};
关于jquery - 从jQuery中的内部函数调用外部函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3598163/