Javascript TypeError:this.AjaxPoller未定义
我有javascript代码,负责发送ajax请求和更新DOM:Javascript TypeError:this.AjaxPoller未定义,javascript,jquery,Javascript,Jquery,我有javascript代码,负责发送ajax请求和更新DOM: this.AjaxPoller = { poll: poll, request: request }; function request() { $(".ajax_poller[data-url]").each(fetchDataForElement); } function fetchDataForElement(i, elem) { var url = $(elem).data("url"); $.ge
this.AjaxPoller = {
poll: poll,
request: request
};
function request() {
$(".ajax_poller[data-url]").each(fetchDataForElement);
}
function fetchDataForElement(i, elem) {
var url = $(elem).data("url");
$.getJSON(url, handleJson);
}
function handleJson(data) {
if (checkProgress(data)) {
location.reload();
};
$.each(data, function(key, val) {
$(key+ ' .progress_info').html(val);
$(key + ' .progress-bar').width(val);
});
}
function poll() {
setTimeout(this.AjaxPoller.request, 5000);
}
function checkProgress(obj) {
var correct = true;
for (key in obj) {
if (obj[key] != '100%') correct = false;
}
return correct;
}
使用此代码时,此函数返回我在标题中写入的错误:
function poll() {
setTimeout(this.AjaxPoller.request, 5000);
}
如何更改此代码以使其正常工作?请不要尝试此操作
var AjaxPoller = {
poll: poll,
request: request
};
function poll() {
setTimeout(AjaxPoller.request, 5000);
}
例如
function poll() {
setTimeout(this.AjaxPoller.request, 5000);
}
在本例中,this.AjaxPoller未定义为此键工作引用函数poll(),不包含AjaxPoller的定义。我必须使用this.request使此代码100%工作,因为没有它,它只发送一个ajax请求,而不是5秒钟。但我认为这有点异味,因为这可能是指不同的背景。