Re: [jQuery-es] Estructurar código

Choan C. Gálvez choan.galvez en gmail.com
Mar Nov 28 04:35:31 PST 2006


Hola.

On 11/27/06, stripTM <fer en striptm.com> wrote:
> Lo que yo estoy haciendo últimamente es en ese array de funciones el
> tener una de inicio() que se encarga de asignar los eventos a los
> elementos utilizando jquery
>
> Y utilizar también jquery para cuando salte el ready() llamen a la
> función inicio(), no tengo constancia de que haya fallado porque cargue
> antes un script que el de jquery y no lo tenga disponible.
>
> En resumen de como me creo los scripts
>
> HOME = {
>         // Popups y demás historias de la web
>         // Autor: stripTM
>         // ***************************************************
>         inicio : function() {
>                 // Home del sitio
>                 $("#lienzo #news").click(function(){return HOME.popup(this.href,'news',650,850,0)});
>                 $("#lienzo #urbanfu").click(function(){return HOME.popup(this.href,'galeria',650,850,0)});
>                 ...
>         },
>         resto de funciones...
> }
>
> $(document).ready(function(){HOME.inicio();});

Fer, si me lo permites, seré un poco tiquismiquis. No te lo tomes a mal ;)

`HOME.inicio` es una función, no es necesario crear una closure para
pasársela a `ready`. Podrías reescribir ese pedazo tal que:

    $(document).ready(HOME.inicio);

Y si quieres rizar el rizo, puedes usar la versión abreviada de `ready`:

    $(HOME.inicio);

(Nótese: si el argumento que pasamos a la función `$` es una función,
jQuery hace la derivación a `$(document).ready` automágicamente.)

Ah, otra cosa: cuando jQuery se encuentra con un selector del tipo
`#bla`, realiza la selección de nodos llamando a
`document.getElementById`, por tanto

    $("#lienzo #news")

puede ser reescrito como

    $("#news")

Unos cuantos caracteres de menos y una pequeñísima (intuyo) mejora en
performance.

Manías mías aparte, el uso de objetos estáticos (yo no le llamaría
JSON a esto) es, en efecto, una buena técnica y una buena práctica.

Salud.
-- 
Choan
<http://choangalvez.nom.es/>


Más información sobre la lista de distribución jquery-es