Funktion ist nicht definiert - nicht erfasster Referenzfehler
Habe ich diese uncaught referenceerror-Funktion ist nicht definiert Fehler, die nicht verstehen.
Wenn ich
$(document).ready(function(){
function codeAddress() {
var address = document.getElementById("formatedAddress").value;
geocoder.geocode( { 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
map.setCenter(results[0].geometry.location);
}
});
}
});
und
<input type="image" src="btn.png" alt="" onclick="codeAddress()" />
<input type="text" name="formatedAddress" id="formatedAddress" value="" />
Wenn ich auf den Knopf drücke wird es wieder die "uncaught referenceerror".
Aber, wenn ich die codeAddress() außerhalb $(document).bereit(Funktion(){} dann arbeiten feine.
Meine Absicht ist, setzen Sie die codeAddress() innerhalb des Dokumentes.bereit.Funktion.
InformationsquelleAutor der Frage Peter | 2011-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie etwa das entfernen der
onclick
- Attribut und das hinzufügen eines ID:Und das Skript:
Diese Weise, wenn Sie müssen, ändern Sie den Namen der Funktion oder was auch immer keine Notwendigkeit, berühren Sie den html -.
InformationsquelleAutor der Antwort ifaour
Das problem ist, dass
codeAddress()
nicht genügend Spielraum aufrufbar sein, von der-Taste. Müssen Sie deklarieren Sie Sie außerhalb der Rückrufready()
:InformationsquelleAutor der Antwort Humberto
Dein Problem hier ist, dass Sie nicht das Verständnis der Umfang, dass Sie die Einstellung.
Übergeben Sie das
ready
Funktion eine Funktion selbst. In dieser Funktion erstellen Sie eine weitere Funktion, die aufgerufen wirdcodeAddress
. Das eine besteht in dem Umfang, wie es geschaffen und nicht im window-Objekt (wo alles und seine Onkel es nennen könnte).Beispiel:
Haben Sie einen Blick hier für ein bisschen mehr auf anonyme Funktionen: http://www.adequatelygood.com/2010/3/JavaScript-Module-Pattern-In-Depth
Andere Sache ist, dass ich merke, Sie sind mit Hilfe von jQuery auf die Seite. Dies macht die Einstellung auf Behandler viel leichter, und Sie brauchen nicht zu gehen in den Aufwand der Einstellung der 'onclick' - Attribut in HTML. Sie brauchen auch nicht zu machen, die
codeAddress
Methode zur Verfügung alle:(Sie sollten entfernen Sie die vorhandene
onclick
und vergeben Sie eine ID für das Bild-element, das Sie behandeln möchten)Beachten Sie, dass ich ausgetauscht habe
$(document).ready()
mit seiner Verknüpfung von nur$()
(http://api.jquery.com/ready/). Dann die klicken Sie auf Methode wird verwendet, um ordnen Sie einen click-handler an das element. Habe ich auch ersetzt Ihredocument.getElementById
mit dem jQuery-Objekt.InformationsquelleAutor der Antwort Jonathon Bolster
Müssen Sie schreiben, dass die Funktion Körper außerhalb der ready();
weil Sie bereit ist, verwendet, um eine Funktion aufzurufen oder zu binden eine Funktion mit Bindung-id wie dieses.
aber Sie können nicht dies tun wenn Sie anruft", showAmount" - Funktion onchange/onclick-Ereignis
Schreiben Sie "showAmount" außerhalb der ready();
InformationsquelleAutor der Antwort Taimoor Changaiz
Bitte prüfen Sie, ob Sie zur Verfügung gestellt haben js Verweise korrekt. JQuery-Dateien zuerst und dann Ihre benutzerdefinierten Dateien. Da benutzen Sie '$' im js-Methoden.
InformationsquelleAutor der Antwort nayanajith