在jquery中调用两个用户定义的函数
你好 我试图调用两个用户定义的函数,并期望第一个函数必须先执行,然后是第二个……但它们是同时执行的。
$.firstfunc = function(){
//Do something
//jQuery.ajax({
});
$.secondfunc = function(){
//Do something
jQuery.ajax({
});
$.(document).ready(function(){
$.firstfunc();
$.secondfunc();
});
任何帮助将不胜感激。
谢谢!
Hi
I am trying to call two user defined functions and expecting the first one has to execute first and then the second one.. but they are executing simultaneously.
$.firstfunc = function(){
//Do something
//jQuery.ajax({
});
$.secondfunc = function(){
//Do something
jQuery.ajax({
});
$.(document).ready(function(){
$.firstfunc();
$.secondfunc();
});
any help would be appreciated.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
警告:需要 jQuery 1.5+
使用
$ 的黑魔法.Deferred
和$.when
< /a>.它基本上是说当你第一个函数完成它的 ajax 调用时,然后调用第二个函数。
这是因为
$.ajax
返回jqXHR
对象继承自$.Deferred
。如果您想在
$.firstfunc
和$.secondfunc
完成时附加回调,则可以执行以下操作(需要 jQuery 1.6):旧版: jQuery 1.4.2 和 jQuery 1.4.2 1.3.2 支持。
Warning: Requires jQuery 1.5+
Using the black magic of
$.Deferred
's and$.when
.It basically says when you first function finishes its ajax call then call the second function.
This is because
$.ajax
returns ajqXHR
object which inherits from$.Deferred
.If you want to attach a callback when both
$.firstfunc
and$.secondfunc
complete then you can do the following (requires jQuery 1.6):Legacy: jQuery 1.4.2 & 1.3.2 support.
让第一个函数在代码之后调用第二个函数。
编辑(现在我看到你的编辑):
使用ajax函数的回调部分。
Have the first function call the second function after the code.
EDIT (now that I see your edit):
Use the callback portion of the ajax functions.
发生这种情况是因为 Ajax 请求是异步处理的。如果您希望第二个函数在第一个函数之后运行,请将其添加到第一个 Ajax 请求的回调函数中。
That happens because Ajax requests are processed Asynchronously. If you want the second function to run after the first, add it to the callback function of the first Ajax request.
您应该从第一个
.ajax
调用的回调中调用第二个。您可以显式定义它:
...或将其作为参数传递:
You should call the second one from the callback of the first
.ajax
call.You can either define it explicitly:
...or pass it as an argument: