2

ウェブサイトで Galleria 画像ギャラリーを使用しています。問題は、ガレリアを初めて実行したときに、最初の画像が最初ではない場合、ガレリアは最初の画像を一瞬表示してから、最初の画像にスライドして戻ることです。親指をさらにクリックすると、Galleria が正しく動作するため、これは初回のみ発生します。ガレリアを初期化するために使用するコードは次のとおりです。

$('.thumbnail').live('クリック', function(){   

            var image_number = getNumber($(this).attr('id'));
            Galleria.ready(関数(オプション) {
                this.show(画像番号);
            });
            Galleria.run('#ガレリア');
            $('#galleria_frame').show();    
           });

getNumber は、ギャラリー内の画像の数を返す関数です。最初の画像の番号は 0、2 番目の番号は 1 など
です。私の間違いはどこですか? 初めて .thumbnail をクリックすると、galleria が最初の画像に戻るのはなぜですか?

4

1 に答える 1

2

コードにはいくつかの問題があります。

1) Galleria を複数回初期化している (サムネイルをクリックするたびに)

ready2)ガレリアに異なる画像をオンロードで表示するように指示するたびに、イベントに複数のリスナーを追加しています。

代わりにこれを試してください:

$('.thumbnail').live('click', function(){   
    var image_number = getNumber($(this).attr('id')),
        instance = $('#galleria').data('galleria');

    // if Galleria already loaded, just show the index:
    if (instance) {
        instance.show(image_number);
    } else {
    // else fire up Galleria and pass the index as an option
        $('#galleria_frame').show();
        Galleria.run('#galleria', { show: image_number });
    }
});
于 2012-08-25T17:56:14.450 に答える