我不知道这是否是一个错误,但这是我的问题:我使用 jquery 过滤 jcarousel 内容。一切都很顺利,直到我开始使用下一个/上一个按钮。在过滤的默认阶段,按钮工作正常,但在我开始过滤内容(图像)后,jcarousel 开始疯狂工作。例如,如果我在默认状态下有 10 张图像,在过滤后在舞台上显示 3 张(假设我现在只有 4 张),如果我到达最后一张图片,则下一个按钮仍处于启用状态,我可以再滚动 10-15px即使只有空白区域。
被滤镜删除的图像将通过淡出动画消失。
我尝试在每次过滤操作后调用 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”值。过滤工作正常。
最佳答案
您需要明确告诉 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中找到合适的回调。 ,然后设置新的项目长度。
关于javascript - 过滤 jcarousel 内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3489653/