2011-04-23 96 views
0

当我直接调用的方法不具有的setInterval功能正常工作结果表达[未定义]的“this.getURL”不是一个函数

slider.prototype.onTouchEnd = function(e){ 
    clearInterval(this.inter); 
    this.getURL(this.url + '/' + this.eid.id + '/' + this.currX); 
    e.preventDefault(); 
} 

把同样的功能在一个的setInterval给我以下错误: 结果表达[未定义]的 'this.getURL' 不是一个函数

slider.prototype.onTouchStart = function(e){ 
    e.preventDefault(); 
    this.inter = setInterval("this.getURL('www.google.com')",100); 
} 

的getURL的代码是:

slider.prototype.getURL = function(url){ 
    console.log(url); 
    verzoek=new XMLHttpRequest(); 
    verzoek.onreadystatechange=function(){ 
     if(verzoek.readyState==4) { 
      if(verzoek.status==200) { 
       var data=verzoek.responseText; 
      } 
     } 
    } 
    verzoek.open("GET", url, true); 
    verzoek.send(null); 
} 

的this.inter在构造函数中

var slider = function(eid){ 
    ... 
    this.inter = null; 
} 

创建我试过很多东西,但它不断失败。提前

回答

3

THX你需要传递一个真正的功能setInterval,目前要传递一个字符串。

如果将其更改为:

slider.prototype.onTouchStart = function(e){ 
    e.preventDefault(); 
    var that = this; 
    this.inter = setInterval(function(){that.getURL('www.google.com');},100); 
} 

是否行得通?

+0

thx为答案 – 2011-04-23 23:07:47

相关问题