Foros del Web » Programando para Internet » Jquery »

como optimizar este código de jquery

Estas en el tema de como optimizar este código de jquery en el foro de Jquery en Foros del Web. Hola a todos, estoy empezando a trabajar con jquery y pues poco a poco estoy tratando de optimizar la escritura para simplificar el código, yo ...
  #1 (permalink)  
Antiguo 20/06/2012, 19:40
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
como optimizar este código de jquery

Hola a todos, estoy empezando a trabajar con jquery y pues poco a poco estoy tratando de optimizar la escritura para simplificar el código, yo se que para muchos de pronto esta duda es sencilla pero como yo recien inicio me cuesta un poco.

El código que tengo es el siguiente:

Código PHP:
  $('.chart #header').click(function() {
    $(
'.chart #header').attr('title''Test');
    $(
'.chart #header').width('600px');
    $(
'.chart #header th.nombre').text('nombre');
    $(
'.chart #header th.apellido').text('apellido');
    $(
'.chart #header th.edad').text('edad');
    $(
'.chart #header th.fecha').text('fecha');
  }); 
Simplificandolo he logrado lo siguiente.

Código PHP:
  $('.chart #header').click(function() {
    $(
this).attr('title''Test').width('600px');
    $(
'.chart #header th.nombre').text('nombre');
    $(
'.chart #header th.apellido').text('apellido');
    $(
'.chart #header th.edad').text('edad');
    $(
'.chart #header th.fecha').text('fecha');
  }); 
Como se dan cuenta ya he simplificado el objeto pero tengo dudas sobre como simplificar el elemento (.chart #header th) para lograrlo escribir de forma reducida.
Agradezco cualquier colaboración para optimizar este código. De antemano les doy las gracias si me explican como se debe optimizar este código.
__________________
Blog de humor http://elcuasatar.net63.net/
  #2 (permalink)  
Antiguo 20/06/2012, 23:44
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 11 años, 10 meses
Puntos: 127
Respuesta: como optimizar este código de jquery

En este momento no se me ocurren formas de simplificarlo, creo que está ya demasiado simplificado, sólo se me ocurre

Código PHP:
a[0]="nombre";
a[1]="apellido";
a[2]="edad";
a[3]="fecha";

$(
'.chart #header').click(function() { 
    $(
this).attr('title''Test').width('600px'); 
   $(
this+" >th").each(function(i,d){
   $(
d).text(a[i]); 
}
  }); 
Y ni siquiera he probado que funcione.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor
  #3 (permalink)  
Antiguo 21/06/2012, 09:53
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: como optimizar este código de jquery

dontexplain Gracias por responderme, creo que si se debe hacer algo parecido a lo que tu colocas pero tal y como lo pones no funciona. Seguire investigando. Igual si alguien sabe le agradezco su colaboración.
__________________
Blog de humor http://elcuasatar.net63.net/
  #4 (permalink)  
Antiguo 21/06/2012, 13:40
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: como optimizar este código de jquery

Buenas,

Se me ocurre algo así, una mezcla entre lo que tienes y lo de dontexplain.

Este es el más simple, aprovechando la posibilidad de que a la función $ se le puede pasar el contexto desde donde quieres buscar, le pasas this y mejora un poco el rendimiento.

Código Javascript:
Ver original
  1. $('.chart #header').click(function() {
  2.     $(this).attr('title', 'Test').width('1000px');
  3.     $('th.nombre',this).text('nombre');
  4.     $('th.apellido',this).text('apellido');
  5.     $('th.edad',this).text('edad');
  6.     $('th.fecha',this).text('fecha');
  7.  });

Esta formando es usando objetos (clave y valor), por si quieres que el nombre del elemento y el texto que quieres poner sea distinto.

Código Javascript:
Ver original
  1. var datos = {"nombre":"Nombre","apellido":"Apellido","edad":"Edad","fecha":"Fecha"};
  2.  
  3.  
  4.  $('.chart #header').click(function() {
  5.     $(this).attr('title', 'Test').width('1000px');
  6.      
  7.      for(key in datos){
  8.      $("th."+key+"'",this).text(datos[key]);
  9.  }    
  10.    
  11.   });

También podrías hacerlo con un array simple.

Código Javascript:
Ver original
  1. var datos = ["nombre","apellido","edad","fecha"];
  2.  
  3.  
  4.  $('.chart #header').click(function() {
  5.     $(this).attr('title', 'Test').width('1000px');
  6.      
  7.      for(i=0;i<datos.length;i++){
  8.      $("th."+datos[i]+"'",this).text(datos[i]);
  9.  }
  10.      
  11.    
  12.   });
  #5 (permalink)  
Antiguo 21/06/2012, 14:05
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: como optimizar este código de jquery

Muchas gracias en verdad alexg88 y dontexplain por sus respuestas. La ultima idea que me dio alexg88 funciono bien. El problema era mas que todo de manejo de sintaxis porque yo suponia que debia poder hacerse de una forma mas practica sin tener que invocar cada clase de los th uno por uno.

Hoy aprendi algo nuevo en Jquery, muchas gracias en verdad por la colaboración.
__________________
Blog de humor http://elcuasatar.net63.net/

Etiquetas: Ninguno
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 12:19.