使用Javascript函数调用jQuery函数

时间:2009-07-01 14:04:51

标签: javascript jquery json function getjson

在使用此功能时遇到一些麻烦,特别是使用$ .getJSON()。我想在javascript函数中包装来自jQuery的getJSON函数,如下所示:

function reload_data() {
    $.getJSON("data/source", function(data) {
        $.d = data;
    });
}

但是当我调用reload_data()时,它不会执行里面的jQuery函数。有任何想法吗?

3 个答案:

答案 0 :(得分:3)

你没有告诉我们足够的。我会猜一猜!

如果您正在调用此函数,然后立即检查$ .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();
  });
}

答案 1 :(得分:2)

在函数旁边放置一个警报,以便知道它被调用。

并尝试捕获jQuery调用以查看是否存在错误

function reload_data() {
    alert('reload_data  start');
    try{
        $.getJSON("data/source", function(data) {
            $.d = data;
        });
     }
     catch (ex){
         alert ('error in jQuery call:' + ex)
     }
}

答案 2 :(得分:0)

感谢大家的帮助,但解决方案实际上非常简单。这只是一个同步的问题。在重新加载JSON数据之前页面正在重新加载,这就是我没有看到错误的原因。