2012-07-08 37 views
0

我有一個jQuery插件一個的fancybox,我知道當我使用下面的代碼工作:Jquery Fancybox插件在代碼中使用數組?

$("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' 
    }); 
}; 

原代碼,我從谷歌直了(很可能已經從計算器,我記不清了),但只要我嘗試把它放在循環中,我迷路了,因爲我不知道如何寫它。我認爲href行是錯誤的,但我找不到解釋如何做我需要的東西。

我不知道如何寫$( 「A#roomthumb_2237」)爲$( 「A」 + d)如...

+1

只是評論:每個'id'值應在頁面上是唯一的;即''(「a#roomthumb_2237」)''永遠不需要,因爲'id =「roomthumb_2237」'應該始終是唯一的。因此,總是應該使用'$(「#roomthumb_2237」)',特別是因爲它是最高性能的。子選擇器當然有很大的意義(例如使用'$(「#roomthumb_2237 img」)或'$(「#roomthumb_2237」)。find('img')')。一般來說,你應該儘量避免使用任何像'$('a')'這樣的基本選擇器作爲選擇器。 – 2012-07-08 18:13:17

+0

@Jared謝謝你的信息..總是很高興認識這些東西.. – 2012-07-08 22:01:51

+0

@jfk是否回答你的問題?在所選的答案中標記適當的答案是一個最佳實踐。 – 2012-07-08 22:34:35

回答

0

我固定我自己的問題。我的循環很好,文字只有一行錯了,這是我的想法,就是:

'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' 
     }); 
    }); 
}; 
0

爲什麼不直接設置的href類和使用類選擇器調用FancyBox?

HTML

<a href="whatever.jpg" class="fancyboxMe" id="roomthumb_2237">Anchor</a> 
<a href="whatever2.jpg" class="fancyboxMe" id="roomthumb_2233">Anchor</a> 

的JavaScript

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