[jQuery] click-Events in Schleife erstellen (while oder each)

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.957
Hallo zusammen,
wieder mal stoße ich an meine Kompetenz;)

Ich habe einige divs mit der Klasse "referenz". Darin sind jeweils Bilder enthalten.
Nun möchte ich alle divs mit der class="referenz" durchgehen und dort alle Bilder durchgehen, um die Z-Indexe anzupassen:

anzahl = new Array();
j=0;
$('.referenz').each(function() {
$(this).addClass('pictures');
j++;
var z = 50; //for setting the initial z-index's
var inAnimation = false; //flag for referenzing if we are in a animation
$('.pictures img').each(function() { //set the initial z-index's
z++; //at the end we have the highest z-index value stored in the z variable
$(this).css('z-index', z); //apply increased z-index to <img>
});
anzahl[j]=z;
$(this).removeClass('pictures');
});

Geht das so?
Mit dem Array anzahl halte ich für später fest, wie viele Bilder im jeweiligen div sind.
Die einzelnen Divs referenz haben noch die Klasse referenzX (zb class="referenz referenz1").
Ich habs auch schon mit einer while-Schleife probiert, bei der ich hald manuell die Anzahl aller divs eingeben müsste (könnte man sicher später auch irgendwie mit einer Übergabe von php, mit dem die divs automatisch generiert werden nach javascript lösen). Aber das will auch nicht funktionieren:
anzahl = new Array();
var j=1;
while(j<3) {
$('.referenz'+j).addClass('pictures');
var z = 50; //for setting the initial z-index's
$('.pictures img').each(function() { //set the initial z-index's
z++; //at the end we have the highest z-index value stored in the z variable
$(this).css('z-index', z); //apply increased z-index to <img>
});
anzahl[j]=z;
$('referenz'+j).removeClass('pictures');
j++;
};
Kann ich das so schreiben?
 
Zuletzt bearbeitet:

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.957
Oh mann! Immer wenn ich nach 2 Stunden am Verzweifeln bin und hier poste, finde ich eine Lösung!
So einfach:
anzahl = new Array();
var j=1;
while(j<3) {
var z = 50; //for setting the initial z-index's
$('.referenz'+j+' img').each(function() { //set the initial z-index's
z++; //at the end we have the highest z-index value stored in the z variable
$(this).css('z-index', z); //apply increased z-index to <img>
});
anzahl[j]=z;
j++;
};

Jetzt muss ich nur noch rausfinden, wie ich ne Variable von php ans JavaScript übergebe;)
Aber da hilft mir Google sicher schnell;)
 

C64

Kaiser Alexander
Registriert
12.04.06
Beiträge
3.957
Dafür erweitere ich meine Frage:

Jetzt möchte ich für jeden div mit class="referenz" ein clickevent definieren.
In diesem Event soll i gleich der Nummer des angeklickten Container gesetzt werden (also für class="referenz referenz1" => i=1), dann soll die Klasse pictures hinzugefügt werden und noch swapFirstLast true gesetzt werden.

var j=0;
$('.referenz').each(function() { //set the initial z-index's
j++;
$(this+j).click(function() {
i=j;
$(this+j).addClass("pictures");
return swapFirstLast(true); //swap first image to last position
});
});

Mit einer while-Schleife hab ich es auch schon probiert:

var j=1;
while(j<3) {
$('.referenz'+j).click(function() {
i=j;
$('.referenz'+j).addClass("pictures");
return swapFirstLast(true);
});
j++;
};