2012-11-22 58 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

感谢您的回答,但是如果您确实想将外部函数作为回调调用并且不使用“成功”字段。任何线索如何与对象的结构做到这一点? –