1

バグかどうかはわかりませんが、ここに問題があります。jqueryを使用してjcarouselコンテンツをフィルタリングします。次へ/前へボタンを使い始めるまで、すべてうまくいきます。フィルタリングのデフォルトの段階では、ボタンは正常に機能していますが、コンテンツ(画像)のフィルタリングを開始すると、jcarouselはすべて狂ったように機能し始めます。たとえば、デフォルトの状態で10枚の画像があり、ステージ上に3枚表示されている場合、フィルタリング後(たとえば、今は4枚しかありません)、最後の画像に到達すると、次のボタンが有効になり、さらに10〜15ピクセルスクロールできます。空白スペースしかないエリアでも。

フィルタによって削除された画像は、fadeOutアニメーションによって出力されます。

すべてのフィルタリングアクションの後にjcarouselを呼び出そうとしましたが、同じ結果が得られます。場合によっては、フィルターを適用した後、prevbtn。有効になっていませんが、空白スペースの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 に答える