.load()和$(window)之间的延迟.bind('load')

时间:2012-08-08 02:04:59

标签: javascript jquery dom dynamically-generated delayed-execution

我遇到了在完成之间导致延迟的问题:

var href = $('.mainNav').data('href');
$('#slideshow').load(href);   

这会调用一个只包含未排序列表的文件,并将其作为#slideshow的内容。那部分是$(document).ready函数。

下一段代码调用插件jCarousel来设置#slideshow的内容样式,并且在$(document).ready函数之外:

$(window).bind('load', function () {
  $('#mycarousel').jcarousel();
});

我遇到的问题是,正在加载的列表和插件格式化列表完全取消样式之间有一点延迟。有没有办法在列表本身显示之前运行第二段代码?

1 个答案:

答案 0 :(得分:0)

你可以用CSS隐藏它:

#mycarousel {
  display: none;
}

然后在设置jcarousel后显示它:

$(window).bind('load', function () {
  $('#mycarousel').jcarousel();
  $('#mycarousel').show();
});

此外,我认为您$(window).bind('load', ...).load()一起使用时很奇怪,因为.load()不会在window上触发加载事件。也许您应该使用.load()类似的回调:

$('#slideshow').load(href, function () {
  $('#mycarousel').jcarousel();
  $('#mycarousel').show();
});