gpt4 book ai didi

javascript - 类型错误 : this. AjaxPoller 未定义

转载 作者:行者123 更新时间:2023-12-02 16:04:37 26 4
gpt4 key购买 nike

我有 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");
$.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 在这种情况下未定义,因为 this 关键字引用了函数 poll() 并且不包含 AjaxPoller 的定义。

关于javascript - 类型错误 : this. AjaxPoller 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30882935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com