jQuery循环插件-有没有办法知道寻呼机何时准备好?
我正在尝试使用,以允许我的分页缩略图水平滚动,它的工作良好。问题是,有时候jcarousel插件没有初始化,因为我认为分页还没有准备好。我的代码如下所示:jQuery循环插件-有没有办法知道寻呼机何时准备好?,jquery,jcarousel,jquery-cycle,Jquery,Jcarousel,Jquery Cycle,我正在尝试使用,以允许我的分页缩略图水平滚动,它的工作良好。问题是,有时候jcarousel插件没有初始化,因为我认为分页还没有准备好。我的代码如下所示: $('#slideshow').cycle({ timeout : 0, speed : 1000, pager : '#image-carousel ul', pagerAnchorBuilder: function(idx, slide) { return '<li>&l
$('#slideshow').cycle({
timeout : 0,
speed : 1000,
pager : '#image-carousel ul',
pagerAnchorBuilder: function(idx, slide) {
return '<li><a href="#"><img src="' + slide.src + '" width="107" height="80" /></a></li>';
}
});
$('#image-carousel').jcarousel();
$('#幻灯片放映')。循环({
超时:0,
速度:1000,
寻呼机:“#图像传送带ul”,
pagerAnchorBuilder:函数(idx、幻灯片){
返回“”;
}
});
$(“#图像旋转木马”).jcarousel();
有时,当页面加载jcarousel时,它不工作,我使用setTimeout将其初始化延迟约2秒,并且每次都工作,因此我认为这一定是因为有时候寻呼机还没有准备好。我现在可以接受setTimeout解决方案,但我认为一定有更好的方法来处理这个问题。一种解决方法,如果你对修改cycle插件的源代码感到满意,你可以包括一个名为
onPagerBuilt
的回调,在构建分页后运行。在cycle.js中更改buildPager()
函数,如下所示:
function buildPager(els, opts) {
var $p = $(opts.pager);
$.each(els, function(i,o) {
$.fn.cycle.createPagerAnchor(i,o,$p,els,opts);
});
opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass);
// add this line
if (typeof opts.onPagerBuilt == 'function') opts.onPagerBuilt();
};
然后,您需要将默认值添加到该列表中的某个位置:
$.fn.cycle.defaults = {
onPagerBuilt: null, // the callback to be run after pagination is built.
// rest of the default options
//...
}
那么您的脚本将是这样的:
$('#slideshow').cycle({
timeout : 0,
speed : 1000,
pager : '#image-carousel ul',
pagerAnchorBuilder: function(idx, slide) {
return '<li><a href="#"><img src="' + slide.src + '" width="107" height="80" /></a></li>';
},
onPagerBuilt: function () {
$('#image-carousel').jcarousel();
}
});
$('#幻灯片放映')。循环({
超时:0,
速度:1000,
寻呼机:“#图像传送带ul”,
pagerAnchorBuilder:函数(idx、幻灯片){
返回“”;
},
onPagerBuilt:函数(){
$(“#图像旋转木马”).jcarousel();
}
});