在代码中使用数组的Jquery fancybox插件?

我有一个用于fancybox的Jquery插件,我知道当我使用以下代码时它可以工作:

$("a#roomthumb_2237").fancybox({ 'href' : '#2237_Info', 'titleShow' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic' }); 

但是为了阻止我多次重复这个代码(使用不同的href值),我想在for循环中运行它。

我试过的代码是:

 for (var i = 0; i < rooms_array.length; i++) { var d = "#roomthumb_"+rooms_array[i] $(d).fancybox({ 'href' : rooms_array[i]+'_Info', 'titleShow' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic' }); }; 

我从谷歌直接采取的原始代码(它可能来自stackoverflow,我不记得了),但是一旦我试着把它循环,我就迷路了,因为我不知道怎么写它。 我认为href线是错误的,但我找不到任何解释如何做我需要的东西。

我不知道怎么写$(“a#roomthumb_2237”)为$(“a”+ d)例如……

html 标签的正常用法是具有href属性,如果你有例如:

 2237 2238 2239 

那么你只需要一个fancybox脚本(一个也可以)

 $("a.fancybox").fancybox({ 'titleShow' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic' }); 

请注意,我们使用了class="fancybox"因为如前所述,您不应该在同一文档中多次使用相同的IDIDs是唯一的)

另请注意,您不需要在fancybox脚本中设置选项href ,因为这是从标签本身获取的(当它不作为选择器中的属性存在时使用href选项 – 或 – 当你想从选择器“ 强制 ”一个不同的href 。)

另一方面,如果您不想做的是手动编写所有元素但从arrays生成它们,那么请检查https://stackoverflow.com/a/10093265/1055987

为什么不在href上设置一个类并使用类选择器来调用FancyBox?

HTML

 Anchor Anchor 

JavaScript的

 $("a.fancyboxMe").fancybox({ 'href' : '#2237_Info', 'titleShow' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic' }); 

我解决了自己的问题。 我的循环很好,唯一错误的文本行,我想的是:

  'href' : rooms_array[i]+'_Info', 

我需要:

  'href' : '#'+rooms_array[i]+'_Info', 

现在我注意到了,这很明显……我没有添加选择器。

编辑:这是我的完整代码,现在可以使用了。 注意 – 我为我的数组选择了随机数,只是为了表明这个想法:

 var rooms_array = [2235, 2236, 2237, 2238]; var reposition = function (){ $('#hidden_stuff').attr('display', "none"); $.each(rooms_array, function(key,value){ var a = '#roomthumb_'+value; var b = '#chosenrate_'+value; if ($(b).length) { var c = $(b).offset(); $(a).css({ visibility:"visible", top: c.top -9 + "px", left: c.left + 560 + "px" }) } else{ } $(a).fancybox({ 'href' : '#'+value+'_Info', 'titleShow' : false, 'transitionIn' : 'elastic', 'transitionOut' : 'elastic' }); }); };