Ich habe einige Radios auf meiner Seite und möchte etwas tun, wenn sich das aktivierte Radio ändert. Der Code funktioniert jedoch nicht im IE:
$('input:radio').change(...);
Und nach dem Googeln schlagen die Leute vor, stattdessen den Klick zu verwenden. Aber es funktioniert nicht.
Dies ist der Beispielcode:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
$('document').ready(
function(){
$('input:radio').click(
function(){
alert('changed');
}
);
}
);
</script>
</head>
<body>
<input type="radio" name="testGroup" id="test1" />test1<br/>
<input type="radio" name="testGroup" id="test2" />test2<br/>
<input type="radio" name="testGroup" id="test3" />test3</br>
</body>
</html>
Es funktioniert auch nicht im IE.
Also möchte ich wissen, was los ist?
Ich habe auch Angst, ob das Änderungsereignis erneut ausgelöst wird, wenn ich auf ein geprüftes Radio klicke.
AKTUALISIEREN:
Ich kann keinen Kommentar hinzufügen, daher antworte ich hier.
Ich benutze IE8 und der Link, den Furqan mir gibt, funktioniert auch nicht in IE8. Keine Ahnung warum...
jquery
radio-button
hguser
quelle
quelle
Antworten:
Dieser Code hat bei mir funktioniert:
http://jsfiddle.net/3q29L/
quelle
$('input[type=radio]')
stattdessen (siehe "zusätzliche Hinweise": api.jquery.com/radio-selector )Sie können das Namensattribut wie folgt angeben:
quelle
Funktioniert auch bei mir, hier ist eine bessere Lösung ::
Geigen-Demo
Sie müssen sicherstellen, dass Sie
jquery
vor allen anderen Import- und Javascript-Funktionen initialisiert haben . Weil$
ist einejquery
Funktion. Sogarwird nicht
jquery
initialisiert prüfen oder nicht. Dadurch wird sichergestellt, dass dies erst ausgeführt<code>
wird, nachdem alle Javascripts initialisiert wurden.quelle
Versuchen
anstatt
oder Sie können eine Kurzform verwenden
quelle
Diese Syntax ist etwas flexibler, um Ereignisse zu behandeln. Hier können Sie nicht nur "Änderungen" beobachten, sondern auch andere Arten von Ereignissen mit einem einzigen Ereignishandler steuern. Sie können dies tun, indem Sie die Liste der Ereignisse als Argumente an den ersten Parameter übergeben. Siehe jQuery On
Zweitens ist .change () eine Verknüpfung für .on ("change", Handler). Siehe hier . Ich bevorzuge die Verwendung von .on () anstelle von .change, da ich mehr Kontrolle über die Ereignisse habe.
Zuletzt zeige ich einfach eine alternative Syntax, um das Ereignis an das Element anzuhängen.
quelle