我对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 }
});
});
答案 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 }
});
));
});