2

我正在尝试运行 2 个函数,然后在单击处理程序中重新定位用户。代码如下。

$(".myLink").click( function() {
  function1(param1); // This function contains an ajax call that updates a DB.
  function2(param1); // This function does as well.
  window.location="foo.php";
});

虽然我的 window.location 正确重新定位,但功能未正确触发。我被困在 jQuery 1.43 上,所以我不能使用延迟对象。

处理上述编排的公认架构是什么。

4

2 回答 2

4

回调

$(".myLink").click( function() {
  function1(param1, { success: function() {
    function2(param1, { success: function() {
      window.location = "foo.php";
    }});
  }});
});

或者也许是这样,这将允许他们同时开火:

$(".myLink").click( function() {
  completed = 0;
  var success = function() {
    completed++;
    if (completed === 2) {
      window.location = "foo.php";
    }
  }
  function1(param1, { success: success });
  function2(param1, { success: success });
});

这基本上是你可以在没有合适的Defered库的情况下做到这一点的方式。

于 2012-12-21T23:32:10.030 回答
1

success的第一个 ajax 调用函数必须触发第二个 ajax 调用。

于 2012-12-21T23:32:18.977 回答