如果多个项目小于X,则jcarousel会隐藏两个箭头

时间:2012-07-12 11:15:58

标签: jquery jcarousel

所以我有一些代码,我尝试将它放在.load.ready函数中,但它只是不起作用,因为轮播尚未完全加载。

var num_rec = "${recProducts.size()}";
if(num_rec < 5){
    jQuery(".jcarousel-prev").attr("disabled", true);
    jQuery(".jcarousel-next").attr("disabled", true);
    jQuery(".jcarousel-clip").attr("style", 'postion:relative; width:312px;');
}

现在此代码运行,但被轮播选项覆盖。 我可以使用的轮播选项会运行一个函数来运行此代码吗?

如果我的旋转木马上只有四件东西,则不需要显示任何分页,因为所有四件事都会显示,所以我想完全删除分页并使容器稍大一些,以免图片不切关闭。如果有超过4但我需要分页。

3 个答案:

答案 0 :(得分:0)

HA! 我为实际样式表写了一个额外的样式。这不是我想要的,但它的确有效。使用CSS可见性是有效的,因为使用它的carousel插件没有向元素添加内联样式。

if(num_rec < 5){                
    document.styleSheets[0].addRule(".pdp-main .recommendations .jcarousel-next", "visibility:hidden;");
    document.styleSheets[0].addRule(".pdp-main .recommendations .jcarousel-prev", "visibility:hidden;");
}

对于FireFox,您必须使用insertRule。

我仍然想知道是否有更清洁的方法来做到这一点。 jQuery Rule插件对我不起作用。

答案 1 :(得分:0)

Simplified JQuery methd:

var total_items = jcarousel.find('li').length;
if(total_items < 5)
{                
    $('.jcarousel-control-prev, .jcarousel-control-next, .jcarousel-pagination').hide();
}

答案 2 :(得分:0)

  var items = $('.carousel-navigation').jcarousel('items');
  total_items=items.length;
  if(total_items < 5){                
    $('.prev-navigation, .next-navigation').hide();
  }