当我在没有setInterval的情况下直接调用方法时,该函数正常工作
slider.prototype.onTouchEnd = function(e){
clearInterval(this.inter);
this.getURL(this.url + '/' + this.eid.id + '/' + this.currX);
e.preventDefault();
}
将相同的函数放入setInterval会给我以下错误: 表达式'this.getURL'[undefined]的结果不是函数
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;
}
我尝试了很多东西,但它一直在失败。
提前谢谢
答案 0 :(得分:3)
你需要将一个真实函数传递给setInterval
,你当前正在传递一个字符串。
如果您将其更改为:
slider.prototype.onTouchStart = function(e){
e.preventDefault();
var that = this;
this.inter = setInterval(function(){that.getURL('www.google.com');},100);
}
有效吗?