Mein DOM sieht so aus:
<div id="d1">
<div class="c1">
<a href="#"><img src="img1_on.gif"></a>
<a href="#"><img src="img2_on.gif"></a>
</div>
</div>
Wenn jemand auf ein Bild klickt, möchte ich, dass sich das Bild src dahin ändert, <img src="imgx_off.gif">
wo es x
die Bildnummer 1 oder 2 darstellt.
Ist das möglich oder muss ich CSS verwenden, um die Bilder zu ändern?
javascript
jquery
image
user67033
quelle
quelle
19th July, 2016 15:39 PM
Frage Upvotes Count 369 und @jonstjohn Answer Upvotes Count 931 . Aber so ein Pech, @OP hat sich danach nicht angemeldetFeb 17 '09 at 2:57
.:(
Und @jonstjohn Antwort bleibt unmarkiert .Antworten:
Sie können die attr () - Funktion von jQuery verwenden. Wenn Ihr
img
Tag beispielsweise dasid
Attribut 'my_image' hat, würden Sie Folgendes tun:Dann können
src
Sie das Bild mit jQuery folgendermaßen ändern :Um dies an ein
click
Ereignis anzuhängen , können Sie schreiben:Um das Bild zu drehen, können Sie Folgendes tun:
quelle
Einer der häufigsten Fehler, den Menschen beim Ändern der Bildquelle machen, besteht darin, nicht darauf zu warten, dass das Bild nachträglich ausgeführt wird, um Aktionen wie das Reifen der Bildgröße usw. auszuführen. Sie müssen die jQuery-
.load()
Methode verwenden, um nach dem Laden des Bildes Dinge auszuführen.Grund für die Bearbeitung: https://stackoverflow.com/a/670433/561545
quelle
Für mehr Informationen. Ich versuche, das src-Attribut mit der attr-Methode in jquery für Anzeigenbilder mithilfe der folgenden Syntax festzulegen:
$("#myid").attr('src', '/images/sample.gif');
Diese Lösung ist nützlich und funktioniert, aber wenn Sie den Pfad ändern, ändern Sie auch den Pfad für das Bild und funktionieren nicht.
Ich habe nach einer Lösung für dieses Problem gesucht, aber nichts gefunden.
Die Lösung besteht darin, das '\' am Anfang des Pfades zu setzen:
$("#myid").attr('src', '\images/sample.gif');
Dieser Trick ist sehr nützlich für mich und ich hoffe, er ist nützlich für andere.
quelle
WENN es nicht nur jQuery oder andere Frameworks zum Töten von Ressourcen gibt - viele KB müssen jedes Mal von jedem Benutzer nur für einen einfachen Trick heruntergeladen werden -, sondern auch natives JavaScript (!):
Dies kann allgemeiner und eleganter geschrieben werden:
quelle
Ich werde Ihnen zeigen, wie Sie das Bild
src
so ändern , dass es beim Klicken auf ein Bild durch alle Bilder in Ihrem HTML-Code (in Ihrerd1
ID undc1
Klasse) rotiert ... unabhängig davon, ob Sie zwei oder mehr Bilder in Ihrem HTML-Code haben .Ich zeige Ihnen auch, wie Sie die Seite bereinigen, nachdem das Dokument fertig ist, sodass zunächst nur ein Bild angezeigt wird.
Der vollständige Code
Die Panne
Erstellen Sie eine Kopie der Links, die die Bilder enthalten (Hinweis: Sie können auch das href-Attribut der Links verwenden, um zusätzliche Funktionen zu erhalten. Zeigen Sie beispielsweise den Arbeitslink unter jedem Bild an ):
Überprüfen Sie, wie viele Bilder im HTML-Code enthalten waren, und erstellen Sie eine Variable, um zu verfolgen, welches Bild angezeigt wird:
Ändern Sie den HTML-Code des Dokuments so, dass nur das erste Bild angezeigt wird. Löschen Sie alle anderen Bilder.
Binden Sie eine Funktion, die beim Klicken auf den Bildlink behandelt werden soll.
Das Herzstück des obigen Codes ist das
++$imgShow % $length
Durchlaufen des jQuery-Objekts, das die Bilder enthält.++$imgShow % $length
Erhöht zuerst unseren Zähler um eins, dann ändert er diese Zahl mit der Anzahl der Bilder. Dadurch bleibt der resultierende Index von0
bis zulength-1
den Indizes des$images
Objekts erhalten. Dies bedeutet, dass dieser Code mit 2, 3, 5, 10 oder 100 Bildern funktioniert ... und jedes Bild der Reihe nach durchläuft und beim ersten Bild neu startet, wenn das letzte Bild erreicht ist.Wird außerdem
.attr()
verwendet, um das Attribut "src" der Bilder abzurufen und festzulegen. Um Elemente aus dem$images
Objekt auszuwählen , habe ich mithilfe des Formulars$images
den jQuery-Kontext festgelegt$(selector, context)
. Dann.eq()
wähle ich nur das Element mit dem spezifischen Index aus, an dem ich interessiert bin.jsFiddle-Beispiel mit 3 Bildern
Sie können das
src
s auch in einem Array speichern .jsFiddle-Beispiel mit 3 Bildern
Und so fügen Sie die hrefs aus den Ankertags um die Bilder ein:
jsFiddle-Beispiel
quelle
Hoffe das kann funktionieren
quelle
Sie sollten Ihrem Bild-Tag das folgende ID-Attribut hinzufügen:
Dann können Sie diesen Code verwenden, um die Bildquelle zu ändern:
quelle
Sie können dies auch mit jQuery folgendermaßen tun:
Sie können eine Bedingung haben, wenn für die Bildquelle mehrere Status vorhanden sind.
quelle
Ich hatte das gleiche Problem beim Versuch, die Re-Captcha-Taste aufzurufen. Nach einiger Suche funktioniert die folgende Funktion nun in fast allen bekannten Browsern (Chrome, Firefox, IE, Edge, ...) einwandfrei:
'theUrl' wird zum Rendern eines neuen Captcha-Bildes verwendet und kann in Ihrem Fall ignoriert werden. Der wichtigste Punkt ist das Generieren einer neuen URL, die FF und IE zwingt, das Bild erneut zu rendern.
quelle
Ändern Sie die Bildquelle mit jQuery
click()
Element:
Code:
quelle
quelle
Ich habe heute das gleiche Wunder, das ich auf diese Weise getan habe:
quelle
Dies ist eine garantierte Möglichkeit, dies in Vanilla (oder einfach Pure) JavaScript zu erledigen:
quelle
Nur eine Ergänzung, um es noch winziger zu machen:
quelle
Es gibt keine Möglichkeit, die Bildquelle mit CSS zu ändern.
Die einzige Möglichkeit ist die Verwendung von Javascript oder einer Javascript- Bibliothek wie jQuery .
Logik-
Die Bilder befinden sich in einem Div und es gibt keine
class
oderid
mit diesem Bild.Die Logik besteht also darin, die Elemente auszuwählen, in
div
denen sich die Bilder befinden.Wählen Sie dann alle Bildelemente mit Schleife aus und ändern Sie die Bildquelle mit Javascript / jQuery .
Beispielcode mit Demo-Ausgabe-
quelle