Ich habe einige Code jQuery etwas wie folgt aus:jQuery: von .addClass nach Klasse nach dem Unterricht ändern Auswahl() oder .attr()
$(document).ready(function() {
$("img.off").click(function() {
alert('on');
$(this).attr('class', 'on');
});
$("img.on").click(function() {
alert('off');
$(this).attr('class', 'off');
});
});
Der Selektor arbeitet für Bilder in Ordnung, die den Klassennamen definiert haben in das ursprüngliche HTML-Dokument, jedoch nach dem Bearbeiten des Klassennamens mit jQuery, wird das img-Element nicht auf Selektoren antworten, die seine neue Klasse verwenden.
Mit anderen Worten, die obige Code ausgeführt wird, wenn Sie ein ‚off
‘ img klicken, wird es die erste Funktion auslösen, und ändern Sie die Klasse zu ‚on
‘. Ein erneutes Klicken auf dieses Bild löst jedoch nicht die zweite Funktion aus (wie ich es erwartet hätte), sondern löst die erste wieder aus. Es ist, als ob der Selektor das alte DOM statt der aktualisierten Version liest. Was mache ich hier falsch?
Firefox 3.6.3 - jQuery 1.4.2
verwenden Hmm, ich sehe. Sieht aus, als hätte ich einige falsche Annahmen darüber getroffen, wie jQuery funktioniert. Vielen Dank. – UpTheCreek
Ja, funktioniert super. – UpTheCreek
@Sosh '.click()' bindet nur einen Handler an ein dom-Element. – Skilldrick