addClass und removeClass funktioniert nicht im Internet Explorer
jQuery-Funktionen addClass und removeClass funktionieren nicht korrekt, wenn ich verwenden Sie Sie, ändern Sie das Aussehen des Kontrollkästchens in der Internet-Exploer (IE). Jedoch, Sie funktionieren in anderen Browsern.
Hier ist Beispielcode zu veranschaulichen mein problem:
$('input:#chkbox').click(function()
{
//if($(this).is(":checked")){
if($('input:#chkbox').is(":checked"))
{
$('input:#chkbox').next("label").addClass("etykieta_wybrana");
}
else
{
$('input:#chkbox').next("label").removeClass("etykieta_wybrana");
}
});
Weiter zu testen, können Sie führen Sie den code mit jsFiddler (funktioniert nicht im IE):
http://jsfiddle.net/tejek/pZJMd/
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihre Auswahl sollte entweder
$('#chkbox')
wenn Sie wollen, dass es funktioniert mit nur einer checkbox, die man mit der id chkbox, oder sollte es$('input:checkbox')
wenn Sie wollen, dass es funktioniert mit jeder checkbox.Auch, es ist besser, verwenden Sie das change-Ereignis aus, anstatt das click-Ereignis, da das click-Ereignis (theoretisch) sollte nicht ausgelöst, wenn die änderung vorgenommen wurde, die durch etwas anderes als ein Mausklick.
Vielleicht versuchen Sie so etwas wie dieses:
Sehen DEMO.
Wenn es nicht hilft, dann versuchen Sie hinzufügen und entfernen Sie die Klassen manuell in HTML, um zu sehen, ob vielleicht das problem ist nicht das hinzufügen von Klassen, aber nicht zeigen Effekte der Zugabe der Klassen, die durch einige seltsame quirks-Modus Rendern oder so etwas.
Stellen Sie sicher, starten Sie Ihre HTML mit etwas wie dieses:
sicher sein, dass Sie immer das beste aus der IE-rendering-engine.
Diese Auswahl
input:#chkbox
scheint seltsam. Versuchen#chkbox
hast du nur ein element mit der ID#chkbox
(und dies geschieht, um eine<input />
Feld).Außerdem sollten Sie wahrscheinlich cache das Ergebnis
$('#chkbox')
, z.B.:Könnten Sie sogar mit
.toggleClass()
mit einemswitch
(zweites arg., ungetestet):Haftungsausschluss
Nein, das erklärt nicht, warum funktionierte es in Fx, Chrome etc. und nicht in IE. Ich denke, die Selektor-Implementierung ist etwas anders zwischen den Browsern. Im Allgemeinen ist dies möglicherweise nicht selbst lösen das problem, sondern nur der Hinweis auf mögliche Probleme (und eine "sauberere" Lösung).
$chkbox.checked
wenn Sie sicher sind, dass es ein<input type="checkbox" />
vgl. Nutzen Sie die unglaubliche macht der jQuery-Zugriff auf Eigenschaften eines Elements.