admin 管理员组文章数量: 1086019
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?
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?
Share Improve this question asked Jul 1, 2009 at 14:04 mcmaloneymcmaloney 2,3943 gold badges19 silver badges19 bronze badges 4- How do you know it isn't executing the function? Did you put a breakpoint on the line inside to check? – Nosredna Commented Jul 1, 2009 at 14:15
- It's executing just fine. I guess it must be something about the data in the $.d variable not getting refreshed in a way that the rest of the script can use it. – mcmaloney Commented Jul 1, 2009 at 14:37
- You're not showing us enough of the picture to give an accurate answer. – Josh Stodola Commented Jul 1, 2009 at 19:31
- 3 Why are you hanging your "d" variable onto the jQuery namespace, by the way? – Nosredna Commented Jul 1, 2009 at 20:59
3 Answers
Reset to default 3You'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 plete...
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();
});
}
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)
}
}
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.
本文标签: Calling jQuery Function with Javascript FunctionStack Overflow
版权声明:本文标题:Calling jQuery Function with Javascript Function - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1744024984a2520472.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论