2012-11-22 99 views
2

im pritty寫入JavaScript的新對象。現在我試圖做一個ajaxcall並有一個回調函數,但我可以達到ajax調用中的回調函數。Javascript對象調用功能函數中的函數

這是代碼,我該如何調用回調函數?

function smarttalkObj() { 

    this.base_url = 'http://'; 

    this.getPts = function() { 

     $.ajax({ 
      url: this.base_url + 'getPTS', 
      dataType: "jsonp", 
      jsonp : "callback", 
      jsonpCallback: "this.callback_pts", 
      contentType: 'application/x-javascript' 
     }); 
    } 


    } 

    this.callback_pts = function(data) { 

     console.log(data); 

    } 


} 

smarttalk = new smarttalkObj(); 

smarttalk.getPts(); 

回答

3

AJAX的方法可以接收成功錯誤回調函數爲一體的設置的一部分。事情是這樣的:

$.ajax({ 
     url: this.base_url + 'getPTS', 
     dataType: "jsonp", 
     jsonp : "callback", 
     contentType: 'application/x-javascript', 
     success: function(data, textStatus, jqXHR){ 
      console.log(data); 
      // your callback function here 
     }, 
     error: function(jqXHR, textStatus, errorThrown){ 
      // callback in case of error 
     } 
    }); 
+0

謝謝你的答案,但是如果你確實想打電話給外面的話作爲回調函數而不使用「成功」字段。任何線索如何做到這一點? –

+1

沒有成功領域,它可能會變得複雜。你可以嘗試在$ .ajaxSetup({success:functionName})中設置默認值,這樣可以釋放你原來的ajax調用,但最後它是一樣的。爲什麼你想避免成功參數? – alemangui

+0

對於文件結構來說,更容易搜索和查找功能,然後嵌套功能。這就是爲什麼。非常感謝alemangui的回答。 –

1

添加success field

success: function(data) 
{ 
// put code here 
} 

對於示例:

$.ajax({ 
     url: this.base_url + 'getPTS', 
     dataType: "jsonp", 
     jsonp : "callback", 
     jsonpCallback: "this.callback_pts", 
     contentType: 'application/x-javascript', 
     success: function(data) 
       { 
        // put code here 
        } 
    }); 

您可以使用不同的功能太:

$.ajax({ 
     url: this.base_url + 'getPTS', 
     dataType: "jsonp", 
     jsonp : "callback", 
     jsonpCallback: "this.callback_pts", 
     contentType: 'application/x-javascript', 
     success: getCallback 
    }); 

    function getCallback (data) 
    { 
    // put code here 
    } 
+0

感謝您的回答,但是如果您確實想將外部函數作爲回調調用並且不使用「成功」字段。任何線索如何與對象的結構做到這一點? –