2011-01-07 4 views
0

Ich habe ein größeres Schiebereglerbild und ein kleineres "Miniaturbild". Ich habe diesen Code so weit:Jquery wendet ein Quellbild auf ein anderes an

$j(".slider-img").each(function(){ 
    var slideSource = $j(this).attr("src"); 
    $j(".slider-thumb").each(function() { 
    $j(this).attr("src", slideSource); 
    }); 
}); 

Aber es gibt mir das Bild von der ersten Folie für alle Thumbnails. Also möchte ich die Quelle von jedem .slider-img nehmen und auf jeden .slider-thumb anwenden. Ideen?

+0

Das ergibt keinen Sinn. Sind die beiden in irgendeiner Weise verbunden? Nur der letzte .slider-img wird in diesem Code-Setup Auswirkungen haben. –

Antwort

1

die .slider-img Vorausgesetzt, die zu einem .slider-thumb entspricht, ist in der gleichen Position in dem Dokument, relativ zu den anderen mit dieser Klasse, können Sie diese verwenden:

var thumbs = $j('.slider-thumb'); 
$j('.slider-img').each(function(i) { // i is the position in the set 
    thumbs.eq(i).attr('src', this.src); // set the src attribute of the element with position i in the thumbs set to the src of this element 
}); 
+0

Das funktioniert, aber aus irgendeinem Grund hat Folie 1 Thumbnail 5, Slide 2 Thumbnail 1 und so weiter. Aus irgendeinem Grund springen die Vorschaubilder ihren Dias voraus! Sehr merkwürdig, aber es ist ein Anfang, danke! Irgendwelche Ideen, warum es das macht? – Tom

+0

@Tom Wahrscheinlich sind die Bilder nicht in der gleichen Reihenfolge im Quellcode. Wenn Sie Ihren HTML-Code anzeigen können, würde das helfen. – lonesomeday

+0

Sorry für die Verzögerung, habe es zur Arbeit gebracht. Vielen Dank! – Tom

0

Sie benötigen einen Weg, um die entsprechenden Daumen zu finden wenn du in deinem Bild bist. Es kann ein "rel" -Attribut auf Ihrem Elternbild sein (oder auf dem Daumen), es ist nicht sehr offiziell-w3c-clean, aber es wird verwendet :-)

Sie können auch versuchen, den Daumen zu finden, indem Sie "gehen im DOM mit den travsering Funktionen http://api.jquery.com/category/traversing/ könnte es so etwas machen.

$j(".slider-img").each(function(){ 
    var slideSource = $j(this).attr("src"); 
    var thethumb = $j(".slider-thumb", 
    $j(this).parent('div') 
    .next() 
    .child('table:first') 
    .next() 
    ); 
    thethumb.attr("src", slideSource); 
}); 

Hier verwende ich einen Zusammenhang mit dem $ j („Slider-Daumen“, Kontext) Selektor der Kontext ist ein Teil der DOM wo du sicher bist das einzige Bild mit Klasse "slider-thumb" ist dein Ziel.

+0

Könnte ich jedem Beitrag eine einfache Nummer geben? Also post eins wäre rel = 1 und so weiter? Wie können wir das umsetzen? – Tom

+0

die collet Sache würde sein, eine eindeutige "id" id attrubute zu jedem Beitrag und die gleiche ID mit "-slider" für Slider Bilder, dann müssen Sie nur die ID aus Slider Bild extrahieren, entfernen "-slider" und dann Sie können Ihren Daumen nach ID $ ("#" + myid) auswählen. Wenn Sie nicht mit dieser ID spielen können, wäre das Ziel das Attribut rel = "the-corresponding-thumb-id" auf dem Slide-Image hinzuzufügen. Dann extrahieren Sie es mit $ (this) .attr (rel). Aber ich bin mir nicht sicher, ob ich deine Bedürfnisse vollständig verstehe :-) – regilero

Verwandte Themen