我有一个名为gallery_list的数组:
var gallery_list = ["profile.cfm", "explore.cfm", "list.cfm", "lesson.cfm", "class.cfm", "deploy_to_class.cfm"];
当我写下以下内容时,它可以工作:
$.fancybox([
{ 'href' : gallery_list[0],
'type' : 'iframe' },
{ 'href' : gallery_list[1],
'type' : 'iframe' },
{ 'href' : gallery_list[2],
'type' : 'iframe' },
{ 'href' : gallery_list[3],
'type' : 'iframe' },
{ 'href' : gallery_list[4],
'type' : 'iframe' },
{ 'href' : gallery_list[5],
'type' : 'iframe' },
]);
但如果我尝试做类似下面的事情,它就不起作用了:
var data = new Array();
for (i = 0; i < gallery_list.length, i++) {
var obj = {
'href' : gallery_list[i],
'type' : 'iframe'
}
data.push(obj);
}
$.fancybox([
data
]);
任何人都可以提供任何见解吗?很明显,我的数据结构出了问题,但我不确定它是什么......
答案 0 :(得分:5)
您的第二个示例是数组中的数组。代替:
$.fancybox(data);
答案 1 :(得分:4)
你可以试试像
这样的东西$.fancybox( data );
答案 2 :(得分:0)
$.fancybox([
data
]);
冗余,数据已经是数组。 []是用于创建数组文字的运算符,因此您在上面所做的就是创建一个数组,其中您已经构造的数据数组是第一个也是唯一的元素。
正如其他人所说,你想要的是以下内容:
$.fancybox(data);
为了补充一点,我想如果您按照以下方式初始化“数据”变量,也许可以避免误解:
var data = []; //instead of "new Array()"
for (i = 0; i < gallery_list.length, i++) {
//etcetera