Foros del Web » Programando para Internet » Jquery »

[jQuery] Utilizar $(this) anterior

Estas en el tema de [jQuery] Utilizar $(this) anterior en el foro de Jquery en Foros del Web. Hola, estoy haciendo una aplicación en jQuery que necesita hacer llamadas al servidor. Estoy utilizando .getJSON(). Mi problema es que necesito guardar la variable $(this) ...
  #1 (permalink)  
Antiguo 04/02/2011, 09:59
 
Fecha de Ingreso: junio-2007
Mensajes: 25
Antigüedad: 16 años, 10 meses
Puntos: 0
[jQuery] Utilizar $(this) anterior

Hola, estoy haciendo una aplicación en jQuery que necesita hacer llamadas al servidor. Estoy utilizando .getJSON().

Mi problema es que necesito guardar la variable $(this) para dentro de la función de .getJSON() ya que si lo hago justo después, la ejecución no espera a que acabe la consulta al servidor y recibo resultados inesperados.

Os pongo un ejemplo de mi problema:

Código Javascript:
Ver original
  1. var pregunta = $(this).find(".pregunta").html();
  2. $.getJSON('proc.php', {'pregunta': pregunta}, function(datos) {
  3.     ...
  4. });
  5.  
  6. // La respuesta necesita los datos del servidor para responderse ccorrectamente.
  7. var respuesta = $(this).find(".respuesta").html();
  8. // ... (Cálculos)

El problema de este caso es que el servidor tarda más en responder, y la respuesta se calcula directamente sin los datos del servidor.

Código Javascript:
Ver original
  1. var pregunta = $(this).find(".pregunta").html();
  2. $.getJSON('proc.php', {'pregunta': pregunta}, function(datos) {
  3.     ...
  4.    
  5.     var respuesta = $(this).find(".respuesta").html();
  6. });


La espera se puede solucionar así (poniendo el calculo de la respuesta dentro de la función), pero entonces pierdo la variable $(this) anterior.

Mi pregunta es: ¿puedo guardar la variable this para utilizarla fuera de contexto?
  #2 (permalink)  
Antiguo 04/02/2011, 16:28
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: [jQuery] Utilizar $(this) anterior

Guardas la referencia del objeto actual en una variable.
Código Javascript:
Ver original
  1. var el = $(this);
__________________
I see dead pixels

Etiquetas: utilidades, anteriores
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 00:18.