2016-05-12 5 views
0

Ich habe sechs Alben mit den folgenden Klassen: .fancybox_mygallery_1, .fancybox_mygallery_2, .., .fancybox_mygallery_6Feuer mehr Fancybox mit for-Schleife

ich mehrere Fancybox Plugins dieses Feuer versuchen:

var mystr = ".fancybox_mygallery_"; 
for (var i = 1; i <= 6; i++) { 
    mystr = mystr + i; 
    $(document).ready(function() { 
     $(mystr).fancybox({}); 
    }); 
    mystr = ".fancybox_mygallery_"; 
} 

aber es funktioniert nicht. Ich debuggte es und es scheint, dass mystr korrekten Wert jede Iteration hat. Was kann das Problem sein?

UPD: Von Fancybox Seite:

Galerien sind aus Elementen erstellt, die die gleiche "Daten-fancybox-Gruppe" oder "rel" Attributwert haben.

Also ich sollte ihnen nur eins von denen geben.

+1

Sie sollten alle von ihnen die * genau * derselben Klasse und nur anrufen '$ ('. fancybox_gallery'). fancybox()' ohne Schleife. Der ganze Sinn von Klassen besteht darin, Elemente zu gruppieren. –

+1

Probieren Sie: '$ ('[^ ^" fancybox_mygallery _ "]'). Fancybox();' ohne die for-Schleife –

+0

@DarrenSweeney, Durch Karotte Zeichen ('^') wählen Sie alle Klassen aus, die mit 'fancybox_mygallery_' begonnen haben. Und hier gibt es 6 Klassen, die mit 'fancybox_mygallery_' begonnen haben. Ich denke du meinst '$ ('[Klasse^= fancybox_mygallery_' + i + ']') .fancybox();' –

Antwort

0

Stattdessen wird eine Schleife verwenden, um die jQuery Wildcard Funktionalität mit:

$('[class^="fancybox_mygallery_"]').fancybox(); 

Dies zielt alles mit einer Klasse, die mit beginnt fancybox_mygallery_