即使旋转木马中没有任何项目,也会启用下一个按钮,似乎JCarousel认为它有无限项目,因为当我点击下一个按钮时,它实际上会滚动。
我想在Carousel中没有任何项目时禁用'next'。
当旋转木马中有物品时,旋转木马工作正常! 我绝对没有使用JQuery的经验,只有一些javascript。
这就是我所拥有的:
jQuery(document).ready(function() {
jQuery('#mycarousel').jcarousel({
scroll:4
});
});
我想我应该以某种方式使用initCallback,但正如我所说,我根本没有使用过JQuery的经验。 BTW here is all JCarousel参数,我认为,如何设置它们。
希望那里的人会帮助我。
由于
答案 0 :(得分:2)
我相信你是正确的initCallback
就是你想要的。您需要进行某种测试以查看列表中是否包含任何项目,例如:
initCallback: function(carousel, state){
if($(carousel).find('li').length == 0){
$('#next').attr('disabled', true);
}else{
$('#next').attr('disabled', false);
}
}
您还可以查看buttonNextCallback
和buttonPrevCallback
轮播功能,如果当前li
是:last
,则可以再次启用或禁用下一个和上一个“按钮”分别是:first
或{{1}}。
答案 1 :(得分:0)
我在你的其他问题中没有问过这个问题,但我现在会 - 如果没有任何广告意味着你有一个完全空的ul
,那么为什么甚至会有ul
以及为什么曾经打电话给jcarousel吗?
我认为你这样做是为了布局的一致性,如果是这样的话,那么好吧,但是你不应该为你的广告盒设置一些默认内容吗?否则你会得到控件和一个空白的div,我不能让你看起来很“漂亮”。
无论哪种方式,我都可以帮助你,但我想提供一个很好的解决方案,这个解决方案可能或者可能不是你实际要求的解决方案; - )
例如,如果没有广告你完全可以忽略jcarousel,你可以做以下事情:
$(document).ready(function(){
var carouselList = $('#my-ad-carousel li');
if(carouselList.length > 0) {
carouselList.jcarousel({scroll: 4});
}
});
or replace it with a single default ad:
$(document).ready(function(){
var carouselList = $('#my-ad-carousel li');
if(carouselList.length > 0) {
carouselList.jcarousel({scroll: 4});
}
else{
carouselList.replaceWith('<img src="/path/to/some/image" />");
}
});
这一切都取决于真的,但我不确定只是显示完全禁用的arousel是一条很好的路径。