En primer lugar, se puede acortar de que a:
<script type="text/javascript" >
jQuery(function() {
...
});
</script>
En segundo lugar, si desea que sus secuencias de comandos para ejecutar cuando la página se terminó de cargar, entonces sí, debe ponerlos en una función jQuery
/document.ready()
. Puede ponerlos todos en el mismo bloque jQuery(function() { })
y se ejecutarán en orden, no es necesario separarlos.
Para ampliar sobre el funcionamiento de function() {}
bloques:
jQuery(/* do something */);
significa "al cargar la página, hacer algo". Ese "hacer algo" es una función. Puede pasar directamente a una función como esta:
function myFunction() {
...
}
jQuery(myFunction);
Se define una función "myFunction
" y dijo jQuery para ejecutarlo al cargar la página. Tenga en cuenta que acaba de pasar la función a jQuery, sin ()
. Si escribiera jQuery(myFunction());
en su lugar, eso ejecutaría myFunction()
inmediatamente, y todo lo que devuelve myFunction()
se colocaría en jQuery()
, y eso se ejecutaría al cargar la página. Es un poco diferente de los lenguajes como PHP, ya que en PHP es el comportamiento deseado ejecutar todo inmediatamente, en Javascript eso no es necesariamente así. En PHP no puede pasar la función en sí, en Javascript puede. Las funciones en JavaScript actúan más como variables.
lo que se suele hacer es "compensar una función sobre la marcha", que contiene algún bloque de código que desea ejecutar en un momento posterior:
jQuery(function() {
foo();
bar();
});
En este caso estás pasando una función como bueno, solo que lo inventó sobre la marcha y la función no tiene nombre. jQuery retendrá esta función hasta que se cargue la página, y en ese momento se ejecutará. Dentro de esa función puedes hacer tantas cosas como quieras.
No estoy en desacuerdo con la reutilización, pero lo que se gana al usar el init función en lugar de llamar a algunaFunción directamente en. ¿listo? – jfsk3
Digamos que tenía una función que configuraba un acordeón y más adelante en la página c Yocle cargué en diferentes contenidos usando ajax y necesitaba reinicializar el acordeón. Si hubiera rellenado el código en doc ready no podría reutilizarlo. – redsquare
También ayuda a mejorar el seguimiento de la pila al depurar a medida que obtienes funciones con nombre en lugar de las funciones anónimas – redsquare