jquery - Funktion in $ (Dokument) .ready Funktion
Ist es nicht richtig zu erstellen, die Funktionen in der
$(document).ready(function() {
etwa so :
$(document).ready(function() {
function callMe() {
}
});
Die Funktion innerhalb der .ready()
nicht haben, um Anruf vor dem dom-bereit ist und ein Ereignis in der ready()
ausgelöst wird.
Genau zu klären, ein wenig - hier ist der code, das würde das problem veranschaulichen:
$(function() {
var ind = 0;
//some event is executed and changes the value of the ind
//another event which affects the ind variable
//and another one - after this event we call our function
//there's another event - and we call our function again
Die Funktion, welche ich aufrufen müssen, muss der aktualisierte Wert der ind
variable, die ich denke, ich könnte als parameter übergeben, aber gibt es einen besseren Weg, es zu tun?
Auch - eine weitere wichtige Sache ist, dass die function()
in Frage können auch ändern Sie den Wert des ind
variable - zum Beispiel die Inkrementierung (ind++
).
InformationsquelleAutor der Frage user398341 | 2011-07-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, Sie können das tun, es ist nur eine Frage der Rahmen; wenn Sie nur zugreifen müssen
callMe()
innerhalb$(document).ready(function() { })
, dann ist es gut zu setzen, die Funktion gibt es, und bietet einige architektonische Vorteile, da Sie keinen Zugriff auf die Funktion außerhalb dieses Kontexts. Wenn Sie müssen, verwenden Sie den callMe () - Funktion außerhalb des Dokuments bereit, aber Sie brauchen, um zu definieren, den callMe () - Funktion außerhalb der Rahmen.UPDATE
Basierend auf Ihre Klarstellung, Sie haben zwei Optionen:
1) DEKLARIEREN Sie die variable außerhalb der ready(), aber dann definieren Sie die variable innerhalb der bereit()
2) Innerhalb bereit, definieren Variablen mittels
window.yourVariable = 'whatever';
InformationsquelleAutor der Antwort Mike Richards
Diese auch funktionieren.
Wenn Sie
Es funktioniert möglicherweise nicht, und erhalten Sie möglicherweise eine Fehlermeldung "Funktion nicht definiert"
InformationsquelleAutor der Antwort Daniel James Canil
Beim erstellen einer Funktion innerhalb
$(document).ready
ist es garantiert, dass es nicht aufgerufen werden, bevor das Dokument geladen hat. Natürlich, es kann nur aufgerufen werden, dass event-handler selbst (irgendwo später in der Ereignis-handler).In anderen Worten, was Sie zu tun versuchen, ist gültig (wenn auch nicht unbedingt wünschenswert - Sie müssten zeigen, was Sie versuchen zu erreichen).
InformationsquelleAutor der Antwort Tomas Kohl
Können Sie so machen:
So, Sie brauchen nicht zu setzen die Funktion außerhalb des Dokuments fertig sind und der code wird gruppiert und besser organisiert. 😉
InformationsquelleAutor der Antwort rntperes
Ist es wahrscheinlich eine bessere Idee, um die Funktion direkt aufrufen, zum Beispiel so:
InformationsquelleAutor der Antwort soulBit
Dies ist definitiv legal. Die Frage ist, warum wollen Sie es tun? Wahrscheinlich binden die Funktion Gültigkeitsbereich, der bereit und habe es nicht Global an das window-Objekt. Aber ist das, was Sie wirklich wollen? Ich schlage vor, dass Sie einen Blick auf die Funktion closures in javascript und wie es behandelt scoping. zur Klärung der Notwendigkeit...
InformationsquelleAutor der Antwort PhD
Sehen, wenn Sie Sie beseitigen die Notwendigkeit für die Verwendung document.fertig, indem Sie Ihr tag an der Unterseite der html-Datei. Diese sollten die Dinge viel einfacher. Ansonsten erklären die Funktion außerhalb des Bereichs des Dokumentes ist.bereit und rufen Sie es in dem Dokument.bereit Funktionsumfang.
InformationsquelleAutor der Antwort Manas Yadav