2013-04-01 57 views
0

我已經查看了jQuery代碼,但它並不清楚。如何使自己的函數返回成功或錯誤,如下面的代碼:jquery如何返回函數,如成功和錯誤

$.ajax({ 
     type: "GET", 
     url: "/some.xml", 
     success: function() 
     { /** found! **/}, 
     error: function(xhr, status, error) { 
     if(xhr.status==404) 
      { /** not found! **/} 
     } 
    }); 
+2

所以,你想知道的回調是如何工作的? –

+0

我想這就是我想要的..不知道,不完全是一個JavaScript專家..:P我想讓我自己的函數抽象出設置類型,標題等,並只返回成功或錯誤。 – Brad

+1

只是谷歌:臨JavaScript技術,約翰Resig 2006年。你想知道的東西在該書中很好地覆蓋。 – Yang

回答

1

$.ajax通行證在上有successerror性質是函數的對象。在函數中,它將根據結果調用successerror。這個例子可能會幫助你更好地理解。

jsFiddle

function ifTrue(bool, params) { 
    if (bool) 
     params.success(); 
    else 
     params.error(); 
} 

ifTrue(true, { 
    success: function() { 
     alert('success'); 
    }, 
    error: function() { 
     alert('error'); 
    } 
}); 

ifTrue(false, { 
    success: function() { 
     alert('success'); 
    }, 
    error: function() { 
     alert('error'); 
    } 
}); 
+0

稱他們*屬性*,而不是*變量* – Bergi

+0

@Bergi完成,不是100%的術語 –

0

更多選項(成功,錯誤狀態,...),我建議使用遞延對象。 http://api.jquery.com/category/deferred-object/

例子:

function MyFunction(parameter){ 
     var def = $.Deferred(); 
     if(DoSomeThing()){ 
      def.resolve(); 
     } 
     else{ 
      def.reject() 
     } 
     return def; 
    } 

用法: ...

MyFunction(xxx).then(function(){ 
// Success case 
}) 
.fail(function(){ 
//Fail case 
}); 
相關問題