1

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

被过滤器移除的图像将通过淡出动画消失。

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

在过去的 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”值。过滤工作正常。

4

1 回答 1

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);



                });

            }

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

于 2010-08-15T23:13:49.240 回答