在JS中传递变量

时间:2012-08-28 08:39:22

标签: javascript jquery html

大师,

首先是我的代码:

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传递给图像列表。

不幸的是,我无法做到这一点。我尝试这个代码但是脚本崩溃了。

你能帮我解决一下如何将VALUE传递给图像列表吗?

谢谢

1 个答案:

答案 0 :(得分:2)

尝试下面的代码,这可能会起作用,但不是一个好的解决方案。

修改
顺便说一句,因为Kanishka提到用一个数字开始ID不合法。您可以将照片ID存储为自定义属性<a href="#"... data-photoid="2" ... />,并使用jquery data() $(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;
    });
});