2010-10-15 13 views
5

De la documentación que he encontrado este ejemplo:¿Dónde poner todo el código JavaScript jQuery?

Podemos animar cualquier elemento, como una simple imagen:

<div id="clickme"> 
    Click here 
</div> 
<img id="book" src="book.png" alt="" width="100" height="123" /> 

Con el elemento se muestra inicialmente, podemos ocultarlo lentamente:

$('#clickme').click(function() { 
    $('#book').fadeOut('slow', function() { 
    // Animation complete. 
    }); 
}); 

que recuerdo de hace 5 años, que nunca debe hacer referencia a cualquier elemento hasta que se definió. ¿Esta regla todavía se aplica? Entonces, ¿tendría que poner todo ese código en el pie de página de mi página web? ¿O puedo ponerlo en un archivo separado e importarlo en el pie de página? ¿Cuál es la mejor práctica?

Respuesta

8

La forma recomendada de hacer esto es poner todo el código de inicialización en $(document).ready, así:

$(document).ready(function() { 
    $('#foobar').click(function(event) { alert("You Clicked Me!"); }); 
}); 
+2

Yo también prefiero usar '$ (document) .ready()' al otro estilo de invocar esto, ya que es más explícito. – JAL

+0

+1, es mucho más claro. No sé si los guiones minúsculos traducirán esto a la taquigrafía ... – dmp

+0

Es lo que recomienda la documentación de jQuery, así que ... – tdammers

5

Tiene razón; no puedes interactuar con un elemento DOM antes de que exista.

tiene dos opciones:

  • poner el siguiente código HTML, como usted sugiere.

  • poner el código en cualquier parte, pero lo envuelve en $(function() { ... }).
    Este constructo ejecutará la función en el evento de carga de página, después de que el DOM exista.

1

Muchas personas lo colocan en la parte inferior de la página para que otros códigos se puedan ejecutar primero. Eso se convierte en un punto discutible con la sintaxis de documento listo que espera hasta que otro contenido se cargue al dom. Entonces, usando esa lógica, en teoría podría ir a cualquier parte.

+0

Sin embargo, si el guión está en el fondo, el código se carga última y la página real HTML es interpretado "más rápido". –

+0

Dividir pelos bastante aquí. La diferencia sería casi imperceptible, apuesto. Probablemente obtenga una mejor ganancia de velocidad optimizando y minificando de lo que notará al hacer esto. – bpeterson76

2

La mejor práctica es colocar todos los elementos del guión en la parte inferior del documento HTML (justo antes de la etiqueta </body> . Las razones son:

  1. carga de archivos externos JS bloques de carga de otros recursos (como imágenes)
  2. ya que el código JS se ejecuta inmediatamente, es mejor analizar el código HTML de la página en primer lugar y, a continuación, ejecutar el código JS después

Puede ver una plantilla de HTML 5 que demuestra que esta práctica aquí: http://vidasp.net/HTML5-template.html

1

Scripts van mejor en el pie de la página, para proporcionar para la representación más rápida del DOM. La siguiente expresión idiomática ejecuta sólo una vez que el DOM está listo:

$(function() { /* ... your code goes here ... */ } 

Si usted tiene una gran cantidad de código, o código que se comparte entre varias páginas, se podrán enlazar en un archivo separado que puede ser minified, debe necesitas optimizar tu velocidad de descarga.

Cuestiones relacionadas