2010-01-19 54 views
0

我對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 } 
    }); 
}); 

回答

1

在jQuery的Ajax的方法,你可以用它來指定當請求完成後應調用的函數的回調參數。例如:

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

另外,還要注意$(function()...相當於$(document).ready(function()...但更簡潔!

+0

謝謝大家 我會給它一個鏡頭。 – Fox 2010-01-19 09:31:56

2

你應該從第一回調調用第二個函數ajax函數。

例如:

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

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

    }); 
} 
+0

好,等待,還是讓我試試。謝謝 – Fox 2010-01-19 09:19:32

1

所有Ajax函數具有完成處理時執行的回調。這是jQuery中推薦的方式。

例如:

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

$.get和和$.post都允許回調:

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

所以得到的jCarousel方法一旦帖子已完成運行:

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

    )); 
});