使用 Javascript 函数调用 jQuery 函数

发布于 2024-07-26 02:01:47 字数 277 浏览 8 评论 0原文

让它工作时遇到一些问题,特别是使用 $.getJSON() 时。 我想将 jQuery 的 getJSON 函数包装在 Javascript 函数中,如下所示:

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

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

Having some trouble getting this to work, specifically with $.getJSON(). I want to wrap the getJSON function from jQuery in a Javascript function like so:

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

But when I call reload_data() it doesn't execute the jQuery function inside. Any ideas?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

夏末染殇 2024-08-02 02:01:47

你告诉我们的还不够。 我只是猜测一下!

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

You're not telling us enough. I will just take a guess!

If you are calling this function, and then immediately checking $.d for the results, that is not going to work because you don't allow time for the asynchronous AJAX request to complete...

reload_data();
alert($.d); // What?!  It's not displaying the updated results?!

You'll have to utilize a callback structure, like jQuery uses, in order to make it work...

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();
  });
}
大海や 2024-08-02 02:01:47

在函数中放置一个警报以了解其被调用。

并在 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)
     }
}

Put an Alert in side the function to know its getting called.

and a try catch around the jQuery call to see if there is an error

function reload_data() {
    alert('reload_data  start');
    try{
        $.getJSON("data/source", function(data) {
            $.d = data;
        });
     }
     catch (ex){
         alert ('error in jQuery call:' + ex)
     }
}
佞臣 2024-08-02 02:01:47

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

Thanks for the help everyone, but the solution was actually really simple. It was just a matter of synchronization. The page was reloading before the JSON data got reloaded, so that's why I wasn't seeing an error.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文