Das muss etwas Einfaches sein. Ich habe im Internet gesucht und nur Syntaxfehler als Ursache für dieses Problem gefunden, aber ich kann keinen Syntaxfehler finden.
Beim Seitenladen die Funktion hi heißt wie erwartet, aber mein onChange -Ereignis verursacht einen Firebug-Fehler, der besagt, dass die Funktion nicht definiert ist. Ich bin wirklich ratlos. Habe ich ‘hi’ falsch geschrieben?
Probieren und verwenden ; innerhalb von Einzeilerfunktionen, weil der Interpreter wissen muss, wo alles endet.
– Mihai Stancu
27. September 2012 um 12:23 Uhr
Vielen Dank für Ihre Antwort, aber nach dem Testen habe ich festgestellt, dass es mit und ohne Semikolon funktioniert.
– Expedito
27. September 2012 um 13:09 Uhr
Das hi Funktion ist nur im Geltungsbereich innerhalb der ready Ereignishandler. Verschieben Sie es außerhalb des Ereignishandlers oder behandeln Sie die Bindung dort (und entfernen Sie das Inline-Attribut des Ereignishandlers aus dem Markup):
$(document).ready(function(){
function hi(){
alert('hi');
}
$("#cep").on("change", hi);
});
Das hi Funktion ist nur in der definiert ready Block. Draußen existiert es nicht mehr.
Sie müssen Funktionsdefinitionen nicht einschließen .ready(), also einfach entfernen. Alternativ definieren Sie die Funktion wie folgt:
<script type="text/javascript">
$(document).ready(function(){
function hi(){
alert('hi');
}
hi();
});
</script>
hi ist keine globale Funktion. Sie können nur innerhalb Ihres Bereichs darauf zugreifen function(){...}nicht von außen.
Da Sie jQuery verwenden, können Sie die Art und Weise ändern, wie Sie Ihre Funktion an die binden onChange Veranstaltung. Anstatt es über das HTML-Tag aufzurufen, können Sie schreiben:
Probieren und verwenden
;
innerhalb von Einzeilerfunktionen, weil der Interpreter wissen muss, wo alles endet.– Mihai Stancu
27. September 2012 um 12:23 Uhr
Vielen Dank für Ihre Antwort, aber nach dem Testen habe ich festgestellt, dass es mit und ohne Semikolon funktioniert.
– Expedito
27. September 2012 um 13:09 Uhr