2012-07-20 19 views
0

我想禁用onclick函數,以便在其上的ajax正在進行時停止調用相同的函數。禁用onclick函數,以便在它正在進行ajax時停止調用相同的函數?

的onclick功能:

function fnDisplaySubjects(url,cat,divid) 
{ 
    /* DISABLE ONCLICK HERE */ 
     $.ajax({ 
      url: url+"/cat/"+cat, 
      type: "POST", 
      complete: function(){ 
      /* ENABLE ONCLICK HERE */ 
     }, 
      success: function(response){ 
       $('#'+divid).html(response);   
      } 
     });  
    } 
} 

感謝您的幫助..

回答

0

嘗試:

function fnDisplaySubjects(url,cat,divid, obj /* this object */) 
{ 
var $this = $(this); 
if ($this.data('called')) { 
    return; 
} 
$this.data('called', true); 
     $.ajax({ 
      url: url+"/cat/"+cat, 
      type: "POST", 
      complete: function(){ 
      /* ENABLE ONCLICK HERE */ 
     }, 
      success: function(response){ 
       $('#'+divid).html(response); 
       $this.removeData('called');  
      } 
     });  
    } 
} 
+0

作品的第一部分,但不會啓用它再次 – Dru 2012-07-20 12:23:47

+0

現在工作的感謝...添加removeData在完成 – Dru 2012-07-20 12:32:22

0

您可以通過發送者(即按鈕或鏈接),這樣做:

$(sender).attr('disabled', true); // to disable 
.... 
$(sender).attr('disabled', false); // to enable 
+0

試過,但不起作用,仍稱功能多次 – Dru 2012-07-20 12:22:46

0

如果您有ab utton並單擊它調用該函數,你可以這樣做:

//刪除click處理程序(你叫什麼/ * DISABLE ONCLICK HERE * /)

$('#button_id').off('click'); 

//設置點擊處理器(你呼叫/ *啓用ONCLICK HERE */

$('#button_id').on('click', fnDisplaySubjects); 
相關問題