jQuery,等待另一个功能

时间:2010-01-19 09:14:32

标签: jquery

我对jQuery很新,并且有一个简单的问题。

我有两个jQuery函数,它们似乎都开始onload,但我想延迟一个函数,直到第一个函数完成:

$(document).ready(function() {
//DO SOME AJAX STUFF HERE AND CALL FUNCTION TWO BELOW WHEN DONE
});

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({            
        itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback }
    });
});

4 个答案:

答案 0 :(得分:2)

你应该从第一个ajax函数的回调中调用第二个函数。

例如:

$(document).ready(function() {
   MyAjaxMethod(function() {

       jQuery('#mycarousel').jcarousel({            
           itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback }
       });

   });
}

答案 1 :(得分:1)

所有Ajax函数都具有在处理完成时执行的回调。这是在jQuery中做事的推荐方法。

例如:

$("selector").load(url, function() {
  // Put your second function here
});

答案 2 :(得分:1)

jQuery中的Ajax方法有一个回调参数,您可以使用该参数指定在请求完成时应该调用的函数。例如:

$(function()
{
    $.ajax('url', {}, function(data)
    {
        // Do your stuff here.
    }, 'json');
});

另请注意,$(function()...相当于$(document).ready(function()...,但更简洁!

答案 3 :(得分:1)

$.get$.post都允许回调:

jQuery.post( url, [data], [callback], [type] )

因此,一旦帖子完成,请运行jcarousel方法:

$(document).ready(function() {
    $.post(url, data, function(
      jQuery('#mycarousel').jcarousel({            
         itemLoadCallback: { onBeforeAnimation: mycarousel_itemLoadCallback }
     });

    ));
});