在jquery中调用两个用户定义的函数

Raj*_*Raj 2 jquery function callback call

嗨我试图调用两个用户定义的函数,并期望第一个必须首先执行,然后第二个...但它们同时执行.

$.firstfunc = function(){
//Do something
//jQuery.ajax({
});

$.secondfunc = function(){
//Do something
jQuery.ajax({
});

$.(document).ready(function(){
$.firstfunc();
$.secondfunc();
});
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

谢谢!

Ray*_*nos 10

警告:需要jQuery 1.5+

$.firstfunc = function() {
  return $.ajax({});
}

$.secondfunc = function() {
  return $.ajax({});
}

$(function() {
  $.when($.firstfunc).then($.secondfunc);
});
Run Code Online (Sandbox Code Playgroud)

使用$.Deferred's和'的黑魔法$.when.

它基本上说当你第一个函数完成它的ajax调用然后调用第二个函数.

这是因为$.ajax返回一个jqXHR继承自的对象$.Deferred.

如果您要附加一个回调时都$.firstfunc$.secondfunc完整的,那么你可以做以下(需要的jQuery 1.6):

$(function() {
  $.first().pipe($.second).done(function(second_data) {
    // both finished.
  });
});
Run Code Online (Sandbox Code Playgroud)

遗产: jQuery 1.4.2和1.3.2支持.

$.firstfunc = function(cb) {
  $.ajax({
    success: function() {
      ...
      cb();
    },
    ...
  });
}

$.secondfunc = ...

$(function() {
  $.firstfunc($.secondfunc);
});
Run Code Online (Sandbox Code Playgroud)

  • 是的,延期功能.我还是不知道怎么用它们!+1 (3认同)