让它工作有些困难,特别是使用 $.getJSON()。我想将 jQuery 中的 getJSON 函数包装在 Javascript 函数中,如下所示:
function reload_data() {
$.getJSON("data/source", function(data) {
$.d = data;
});
}
但是当我调用 reload_data() 时,它不会执行里面的 jQuery 函数。有任何想法吗?
让它工作有些困难,特别是使用 $.getJSON()。我想将 jQuery 中的 getJSON 函数包装在 Javascript 函数中,如下所示:
function reload_data() {
$.getJSON("data/source", function(data) {
$.d = data;
});
}
但是当我调用 reload_data() 时,它不会执行里面的 jQuery 函数。有任何想法吗?
你告诉我们的还不够。我只是猜测一下!
如果您正在调用此函数,然后立即检查 $.d 以获取结果,那将无法正常工作,因为您不允许异步AJAX 请求有时间完成......
reload_data();
alert($.d); // What?! It's not displaying the updated results?!
您必须使用回调结构,如 jQuery 使用的,以使其工作......
reload_data(function() {
alert($.d);
});
function reload_data(func) {
$.getJSON("data/source", function(data) {
$.d = data;
//Execute the callback, now that this functions job is done
if(func)
func();
});
}
在函数中放置一个警报以了解其被调用。
以及围绕 jQuery 调用的 try catch 以查看是否有错误
function reload_data() {
alert('reload_data start');
try{
$.getJSON("data/source", function(data) {
$.d = data;
});
}
catch (ex){
alert ('error in jQuery call:' + ex)
}
}
感谢大家的帮助,但解决方案实际上非常简单。这只是一个同步问题。在重新加载 JSON 数据之前,页面正在重新加载,这就是我没有看到错误的原因。