将构造变量传递给插件

时间:2014-03-20 17:53:42

标签: jquery plugins

我很难尝试构建并将数组传递给插件。

如果我在这里明确地给出了有效的图片网址,那么该插件会有用并且有效:

$( '#gallery' ).click( function( e ) {
    e.preventDefault();
    $.swipebox( [
        { href:'big/image1.jpg', title:'My Caption' }, 
        { href:'big/image2.jpg', title:'My Second Caption' }
    ] );
} );

所以我想我可以在下面构建我想要使用的图像的字符串变量。当我查看你在这里看到的附加测试时,输出看起来是正确的,但它不起作用:

var thisarray = "";
$('#%id% #gallery img').each(function(){
    var thisimageurl = $(this).attr("src");
    var thisimagetitle = $(this).attr("title");
    var thisitem = "{ href:'" + thisimageurl + "', title:'" + thisimagetitle + "' },";
    thisarray += thisitem;
});

$('#%id%').append(thisarray); // looks like it should


$( '#gallery' ).click( function( e ) {
    e.preventDefault();
    $.swipebox(
        [thisarray]
    );
} );

我不能将这样的构造字符串传递给插件。?

1 个答案:

答案 0 :(得分:0)

请尝试改为:

var thisarray = [];

并在每个循环内推送对象:

thisarray.push({ href: thisimageurl, title: thisimagetitle });

然后调用插件:

$.swipebox(thisarray);