Foros del Web » Programando para Internet » Javascript » Frameworks JS »

[jQeury] Diferencia entre estos dos codigos, cual es?

Estas en el tema de [jQeury] Diferencia entre estos dos codigos, cual es? en el foro de Frameworks JS en Foros del Web. Buenas, estoy empezando con jQuery, pero se me a presentado una duda. Primero hice un codigo pensando en como funcionaria en C# por ejemplo (es ...
  #1 (permalink)  
Antiguo 27/09/2010, 08:46
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 15 años, 7 meses
Puntos: 10
Pregunta [jQeury] Diferencia entre estos dos codigos, cual es?

Buenas, estoy empezando con jQuery, pero se me a presentado una duda. Primero hice un codigo pensando en como funcionaria en C# por ejemplo (es con lo que mejor me manejo). Pero luego entendi que al aplicar algo a una coleccion de objetos en jQuery se les aplica a cada uno de ellos. Veamos los dos codigos para que me comprendan.
Código Javascript:
Ver original
  1. <script type="text/javascript">
  2.     $(document).ready(function ()
  3.     {
  4.         $("a").each(function()
  5.         {
  6.             $(this).click(function()
  7.             {
  8.                 if($(this).attr("id")=="Bonito")
  9.                     alert("Has apretado un a Bonito.");
  10.                 else
  11.                     alert("Has apretado un a comun.");
  12.             });
  13.         });
  14.     });
  15. </script>
  16. <script type="text/javascript">
  17.     $(document).ready(function ()
  18.     {
  19.         $("a").click(function()
  20.         {
  21.             if($(this).attr("id")=="Bonito")
  22.                 alert("Has apretado un a Bonito.");
  23.             else
  24.                 alert("Has apretado un a comun.");
  25.         });
  26.     });
  27. </script>

Como veran, en este caso el uso del each es inecesario. Pero me surgieron las dudas:
1.- Hacen ambos codigos exactamente lo mismo? o el segundo codigo esta mejor optimizado mas alla de tener menos lineas de codigo?
2.- Si siempre que selecciono algo, en este caso los "a", voy a pasar por cada uno de ellos, en que casos va a ser necesario el each?

Desde ya muchas gracias.
  #2 (permalink)  
Antiguo 27/09/2010, 09:43
 
Fecha de Ingreso: diciembre-2009
Ubicación: Misiones
Mensajes: 867
Antigüedad: 14 años, 4 meses
Puntos: 65
Respuesta: [jQeury] Diferencia entre estos dos codigos, cual es?

y para entender bien hay que ver el código en la libreria y para eso se nesecitaría buen nivel en javascript

el segundo me gusta mas porque evitas un each, pero que pasaría si tenes que comprobar otros id?

mejor separalos, queda mas sencillo y legible, no?

Código Javascript:
Ver original
  1. $('#bonito').click( function (){
  2.    alert("Has apretado un a Bonito.");
  3. });
  4. $('.comun').click( function (){
  5.    alert("Has apretado un a comun.");
  6. })

y el for nativo de javascript es mas rápido que el each de jquery


yo me fijo mas en que sea legible, mis html no son gigantes asi que no se me presentaron problemas, no te puedo ayudar mucho jeje

Última edición por Dany_s; 27/09/2010 a las 09:51
  #3 (permalink)  
Antiguo 27/09/2010, 11:18
 
Fecha de Ingreso: septiembre-2008
Mensajes: 148
Antigüedad: 15 años, 7 meses
Puntos: 10
Respuesta: [jQeury] Diferencia entre estos dos codigos, cual es?

El problema es que .comun no existe... el objetivo que me plantie fue tener un monton de elementos tipo "a" de los cuales uno en particular tiene id="Bonito". Ademas es solo a efectos de entender el funcionamiento por un lado de las funciones lambda en javascript y por el otro jQuery, que como dije recien le estoy tomando el gustito al asunto. Hacer funcionar eso me llevo 2 dias, si no era por que me olvidaba un }); era por que para el "a#Bonito" me saltaban los dos alertas etc... pero lo logico es como vos decis. Gracias por la respuesta.

Etiquetas: codigos, diferencia, dos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:35.