2010-10-05 57 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); 
    } 
} 

我沒有在exeSuccess方法中獲得Box對象。如何在exeSuccess方法內傳遞Box對象?如何在jQuery Ajax成功回調函數中傳遞上下文

回答

76

使用context option,就像這樣:

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

上下文選項確定何種情況下回調調用...所以它決定了this指函數內。

+3

非常抱歉。看不見的jQuery文檔。這裏明確提到http://api.jquery.com/jQuery.ajax/ – rajakvk 2010-10-05 12:23:48

+4

也許清楚地提到,但不清楚如何使用它。 Nick的例子非常有幫助。這篇文章更詳細:http://stackoverflow.com/questions/5097191/ajax-context-option – 2014-07-18 14:33:00

相關問題