2

最初に私のコード:

HTML

 <div class="product_image m2" id="m2"><a href="#" id="10" class='multi2'>test..</a></div>

JS

 $(document).ready(function(){

     $("#m2 a").bind("click", function() {
        var value = $( this ).attr( 'id' );
        alert(value);
        return false;
    });


    if ($(".multi2").length > 0){
    
           $(".multi2").yoxview({
           
                cacheImagesInBackground:true,
                skin: "top_menu",
                lang: "hu",
                
                images: [
        
                { media: { src: 'images/galeria/cella/image01'+value+'.JPG', title: 'Cella hegesztő' }},
                { media: { src: 'images/galeria/cella/image015.JPG', title: 'Cella hegesztő' }},
                { media: { src: 'images/galeria/cella/image013.JPG', title: 'Cella hegesztő' }},
            
            
            ]
            });
    }

 });

だから、私はYoxviewを使用しています。Multi2 クラスは、画像と、ユーザーがリンク (またはサムネイル) をクリックしたときを定義します。ライトボックスが表示され、スライドショーが開始されます。

スライドショーは、JS で定義された最初の画像から毎回開始されます。これを変更したいので、m2 div 内の href の id をイメージ リストに渡したいと思います。

残念ながら、私はこれを行うことはできません。このコードを試してみましたが、これでスクリプトがクラッシュしました。画像リストに値を渡すにはどうすればよいですか?

4

1 に答える 1

2

以下のコードを試してみてください。これはおそらくうまくいくでしょうが、良い解決策ではありません。

編集
ところで、カニシュカが言ったように、IDを数字で始めることは合法ではありません。写真IDをカスタム属性として保存し、jquery data()<a href="#"... data-photoid="2" ... />を使用して取得できます。 $(this).data('photoid')

$(document).ready(function(){
     $("#m2 a").bind("click", function() {
        var value = $( this ).attr( 'id' );
            if(!$(this).data('yoxed')) {
                 $(this).yoxview({

                    cacheImagesInBackground:true,
                    skin: "top_menu",
                    lang: "hu",

                    images: [
                       { media: { src: 'images/galeria/cella/image01'+value+'.JPG', title: 'Cella hegeszto' }},
                       { media: { src: 'images/galeria/cella/image015.JPG', title: 'Cella hegeszto' }},
                       { media: { src: 'images/galeria/cella/image013.JPG', title: 'Cella hegeszto' }}
                    ]
                  });
                 $(this).data('yoxed', true).trigger('click');
            }
        }

        return false;
    });
});
于 2012-08-28T08:45:52.330 に答える