Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/02/2011, 09:59
miguiperez
 
Fecha de Ingreso: junio-2007
Mensajes: 25
Antigüedad: 17 años, 6 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?