Javascript-Funktion, innen-Dokument.bereit
Warum nicht jede javascript-Funktion geschrieben werden, innen-Dokument.bereit, direkt aus aufgerufen, ein Ereignis in jsp?
ZB:
$(document).ready(function(){
function abc()
{
//Some stuff here
}
});
So etwas wie:
<input id="a" type="button" onclick="abc();">
- zeigen Sie Ihr markup oder machen ein Turnschuh
- Weil es ist out of scope. Befestigen Sie das event in JavaScript.
- Alternativ, bewegen Sie die Deklaration der Funktion außerhalb von
document.ready
. Es gibt keinen Grund zu setzen. - Sie weiß nicht, dass tatsächlich. Nicht mit so eine vereinfachte code-snippet.
- Fair genug, aber ich sehe nur zwei Gründe, um zu halten ein function-Deklaration vorhanden ist: Wenn es einen Verschluss und/oder dem globalen Gültigkeitsbereich sauber. Aber abgesehen davon, dass man nicht warten muss, bis zum deklarieren einer Funktion, bis das Dokument bereit ist. Ich denke, es gibt viele Entwickler, die alle Ihre code innerhalb der ready-handler, weil Sie einfach nicht besser wissen.
- Vereinbart. Ich würde normalerweise davon ausgehen, eine solche Funktion ist eine closure.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Weil es nicht im globalen scope verfügbar. Jede definierte Funktion innerhalb der anonymen Funktion übergeben Sie als argument an
$.ready()
ist nur innerhalb dieser Funktion.Zu erreichen, was Sie wollen, brauchen Sie etwas wie:
Weitere Informationen zum Funktionsumfang finden Sie unter diese MDN Artikel