2012-04-04 10 views
0

Ich schrieb diesen Code, der für jede Klasse gibt .hpCarousel die im Zusammenhang Hintergrundbild. NamenJavascript zugewiesen CSS background-image Ausgabe

wobei das Bild: 0bg.jpg, 1jpg.bg, 2bg.jpg, etc ...

for (i=0; i < 8; i++) { 
$('.hpCarousel:eq('+i+')').css('background-image', 'url(wp-content/themes/blankslate/assets/carousel/'+i+'bg.jpg'); 
} 

Es in Firefox funktioniert. Die Klassen haben einen Stil mit dem richtigen Hintergrundbild zugewiesen.

enter image description here

Es funktioniert nicht in Chrome OSX & WIN/Safari OSX/IE. Die Divs der Klasse .hpCarousel haben keinen Stil.

enter image description here

Ich dachte zuerst war es etwas mit Chrome Hintergrund Refresh-Fehler zu tun. Aber es in anderen Browsern gefunden zu haben, hat mich anders denken lassen.

Mache ich eindeutig etwas falsch gemacht?

Diese Klassen werden auf Last versteckt. Macht das einen Unterschied? Dann verblassen sie in und aus hintereinander ein Karussell zu erzeugen

+0

Haben Sie Höhe, Breite (möglicherweise bis 100%) eingestellt? Sie könnten auch versuchen, Hintergrund statt Hintergrundbild zu verwenden – Panagiotis

+0

Ja, Höhe und Breite sind festgelegt. Das Wechseln zu 'Hintergrund' statt 'Hintergrundbild' bewirkt nichts. – Feeney

Antwort

0

Haben Sie Fehler in FireBug haben? Sie könnten eine weitere (allgemeinere) Wähler in der Schleife verwenden:

$('.hpCarousel:nth-child(' + i + ')') 

Auch die $.each Iterator ist ein bequemer Weg durch Ihre Hintergründe zu durchlaufen.

$('.hpCarousel').each(function(index) { 
    $(this).css('background-image', 'url(wp-content/themes/blankslate/assets/carousel/'+index+'bg.jpg'); 
}); 
+0

Ich kannte die Verwendung von Index in .each nicht, aber das ist eindeutig der richtige Weg. Danke – Feeney

+0

BTW, ich habe keine Fehler in Firebug. – Feeney