【发布时间】:2013-05-17 08:40:58
【问题描述】:
我目前正在调用外部 php 文件并在特定的 div 中显示它们。这一切都是使用标准的 jQuery $.ajax 调用完成的。
但是,当被拉入的页面之一尝试以下 getJSON 调用时会出现问题,从而导致无限循环:
function getContacts() {
if ($('body.all-contacts').length){
$.getJSON('assets/data/contacts.json', function(data) {
var template = $('#contacts-template').html();
var info = Mustache.to_html(template, data);
$('.contact-list').html(info);
});
}
};
上述函数调用如下:
$(document).ajaxComplete(function(){
....
getContacts();
....
})
我也尝试过使用 ajaxStop() 而不是 ajaxComplete() 但问题仍然存在。
【问题讨论】:
-
当 ajax 调用完成时,您将启动 ajax 调用。无限循环看起来合乎逻辑。
-
你为什么在
ajaxComplete里面打电话给getContacts() -
在初始 ajax 调用(加载外部页面)期间,主体类名称被更新,完成后我需要触发 getContacts 函数,因为它需要对新加载的外部页面起作用。
-
尝试使用回调而不是
ajaxComplete()。例如,创建一个函数setUp(),它将加载您的所有外部文件。一旦 setUp() 完成,调用getContacts()。 (创建回调:stackoverflow.com/questions/8516191/jquery-create-callback) -
非常感谢大家,回调正是我们所需要的,而不是 ajaxComplete!