我试图在完成AJAX
更新后找到重新加载页面的方法。
我的基本代码是:
updateEdit = function() {
$('#editSection').on('click', '#Changes', function() {
/*set var here*/
$.ajaxSetup({
data: {
var1: 1,
var2: 2
}
})
ajaxUpdate();
});
}
ajaxUpdate = function() {
$.ajax({
type: 'GET',
url: 'update.php',
data: {},
success: function(data) {
alert(data);
centerItem('#savedBox');
},
error: function(jqxhr) {
alert(jqxhr.responseText);
}
})
}
到目前为止一切顺利。我现在需要暂停1秒钟,然后滚动页面。环顾四周表明我需要使用setTimeout(location.reload, 1000);
所以我加入了
complete: function() {
setTimeout(location.reload, 1000);
}
到$.ajaxsetup()
,但似乎什么也没做。
然后我将它添加到主ajaxUpdate()
函数中(不理想,因为我不希望它在每个ajaxUpdate上触发),从而出现Uncaught TypeError: Illegal invocation
错误。 (并且没有页面重新加载)。
我做错了什么?
答案 0 :(得分:1)
重新加载是一种方法。通过函数
调用它setTimeout(function(){location.reload()}, 1000);
希望这有帮助。
答案 1 :(得分:1)
setTimeout函数的语法不正确
请使用此:
setTimeout(function(){location.reload();}, 1000);
答案 2 :(得分:0)
updateEdit = function() {
...
// Will wait 1 sec and then reload the page
var waitCallback = function () {
setTimeout(function() { location.reload(); }, 1000);
};
ajaxUpdate(waitCallback);
});
}
ajaxUpdate = function(cb) {
$.get('update.php',
function(data) {
alert(data);
centerItem('#savedBox');
cb();
})
.fail(function(jqxhr) {
alert(jqxhr.responseText);
});
};