过滤jcarousel内容

时间:2010-08-15 23:05:34

标签: javascript jquery jcarousel

我不知道这是不是一个bug,但这是我的问题:我使用jquery过滤jcarousel内容。一切顺利,直到我开始使用next / prev按钮。在默认的过滤阶段,按钮工作正常,但在我开始过滤内容(图像)后,jcarousel开始疯狂地工作。例如,如果我有10个图像处于默认状态,在舞台上显示3,过滤后(假设我现在只有4个)如果我到达最后一个图片,下一个按钮它仍然启用,我可以滚动另一个10-15px区域即使只有空白区域。

过滤器删除的图像将通过fadeOut动画输出。

我尝试在每次过滤操作后调用jcarousel,但我得到相同的结果。在某些情况下,我应用过滤器后,上一个btn。它没有启用,但我可以滚动100-200px的空白区域。

我尝试在过去3天内解决了这个问题,但我找不到合适的解决方案。

对不起我的英文和谢谢: - )

更新

这是我的代码,也许有助于理解这个问题:

$(".anim").jcarousel();
$("#menu ul li").click(function() {
    var flt = $('a', this).attr('rel');
    $('.anim li').each(function() {
        if(!$(this).hasClass(flt)) {
            $(this).fadeOut('normal');
        } else {
            $(this).fadeIn('normal');
            }
        });
    return false;
});

jCarousel结构(.anim)是:

<ul class="anim">
<li class="flt1"><img ... /></li>
<li class="flt1"><img ... /></li>
<li class="flt1"><img ... /></li>
<li class="flt2"><img ... /></li>
<li class="flt3"><img ... /></li>
</ul>

其中flt1..3是我的过滤器和菜单链接的'rel'值。过滤工作正常。

1 个答案:

答案 0 :(得分:1)

您需要明确告诉jCarousel仍有多少项目。

例如,这是我给jCarousel

配置的匿名函数
function(carousel, state) {

                if (state != 'init') return;

                getProperties(function(properties) {
                    $.each(properties, function(i, property) {
                        carousel.add(i + 1, getPropertyHtml(property));
                    });

               carousel.size(properties.length);



                });

            }

请注意我最后要如何设置尺寸?您需要做的是在configuration中找到合适的回调,然后设置新的项目长度。