2012-06-13 33 views
1

我如何可以綁定一個ajaxStart功能爲特定事件,使用:ajaxStart和ajaxStop特定事件

$(document).ajaxStart(function() { 
    alert("started"); 
}); 
$(document).ajaxStop(function() { 
    alert("Ended"); 
}); 

嘗試這種代碼,但它運行時自動完成啓動。

場景必須是這樣的:每當我提交一個表單,該函數將被調用。 但是,當我剛剛通過ajax使用自動完成獲取值時,不應調用ajaxStartajaxStop

回答

0
$.ajax({ 
     url :'your url', 
     data: { 
      //data to send if any 
     }, 
     type: 'POST', 
     success:function(msg){ 
      //eqv to ajaxstop if OK 
     }, 
     beforeSend:function(){ 
      //before ajax starts 
     }, 
     error:function(){ 
      //failure in ajax 
     } 
}); 
+0

這是第一個答案,它的工作,所以我會選擇這個作爲接受的答案... – rjmcb

2

但是當我只是通過ajax獲取使用自動完成值, ajaxStart和ajaxStop不應該被調用。

您可以創建一個布爾變量來跟蹤用戶是否在輸入或不類似的:

<script> 
var isTyping = false; 

// inside your autocomplete handler set isTyping to true 

$(document).ajaxStart(function(){ 
    if (! isTyping) alert("started"); 
}); 
$(document).ajaxStop(function(){ 
    if (! isTyping) alert("Ended"); 
}); 

</script> 
1

這是更好,如果你使用的主要功能和它的子功能。

$.ajax({ 
url: 'url_to_page' 
beforeSend: function(req){ //Before the request is taking off}, 
error: function(req){ //If there were a error}, 
success: function(req){ //When it all was done} 
}); 
相關問題