2010-10-05 16 views
47
var Box = function(){ 
    this.parm = {name:"rajakvk",year:2010}; 
    Box.prototype.jspCall = function() { 
     $.ajax({ 
      type: "post", 
      url: "some url", 
      success: this.exeSuccess, 
      error: this.exeError, 
      complete: this.exeComplete 
     }); 
    } 
    this.exeSuccess = function(){ 
     alert(this.parm.name); 
    } 
} 

No obtengo el objeto Box dentro del método exeSuccess. ¿Cómo pasar el objeto Box dentro del método exeSuccess?Cómo pasar el contexto en la función de devolución de llamada de jquery ajax

Respuesta

76

Uso del context option, así:

$.ajax({ 
     context: this, 
     type: "post", 
     url: "some url", 
     success: this.exeSuccess, 
     error: this.exeError, 
     complete: this.exeComplete 
    }); 

La opción de contexto determina qué contexto la devolución de llamada se llama con ... lo que determina lo que se refiere a this dentro de esa función.

+3

Lo siento mucho. Documentación jQuery con visión adelantada. Se menciona claramente aquí http://api.jquery.com/jQuery.ajax/ – rajakvk

+4

Tal vez se haya mencionado claramente, pero no tan claro en cuanto a cómo usarlo. El ejemplo de Nick es muy útil. Esta publicación entra en más detalles: http://stackoverflow.com/questions/5097191/ajax-context-option –

Cuestiones relacionadas