2010-08-15 74 views
1

我不知道這是否是一個錯誤,但這裏是我的問題:我使用jQuery過濾jcarousel內容。一切都會好的,直到我開始使用下一個/ prev按鈕。在過濾的默認階段,按鈕工作正常,但是當我開始過濾內容(圖片)後,jcarousel開始瘋狂工作。例如,如果我有10個圖像處於默認狀態,在舞臺上顯示3,過濾後(假設我現在只有4個),如果我看到最後一張圖片,下一個按鈕仍然啓用,我可以滾動另一個10-15像素地區即使只有空白。過濾jcarousel內容

過濾器刪除的圖像將通過fadeOut動畫發送出去。

我試圖在每次過濾操作後調用jcarousel,但我得到了相同的結果。在某些情況下,我應用過濾器後,prev 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

您需要明確告訴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中找到合適的回調,然後設置新的項目長度。

+0

謝謝你的回答亞歷克斯。我已經發布我的代碼,因爲我無法讓它工作。你能幫我解決這個小問題嗎? – doubleb 2010-08-17 20:56:43

+0

在jCarousel中隱藏項目時設置大小的一個問題是,如果調整輪播大小(如瀏覽器調整大小時),則會刪除索引大於大小的項目。這可能會導致一些重大問題。 – 2011-08-16 17:32:45