2012-09-20 97 views
1

我有一系列按鈕和foreach按鈕的我有一個單獨的。點擊(函數(){取消的setInterval爲按鈕點擊AJAX

$("#approved").button().click(function() { 
$("#waiting_approval").button().click(function() { 
$("#department_waiting_approval").button().click(function() { 
$("#department").button().click(function() { 

我有對的setInterval AJAX該刷新在該div中的數據 我面臨的問題是,一旦用戶點擊不同的按鈕,我想停止當前按鈕單擊阿賈克斯呼叫,並開始新的一個

希望這是有道理的,在此先感謝。

$("#approved").button().click(function() { 

setInterval(function(){ 
    $.ajax({ 
    type: "GET", 
    url: "holidays/academic_days.php?userid='+$('#approved_list').attr('class')", 
    dataType: "html", 
    success: function(data) { 
    jQuery("#approved_list").fadeOut(10 , function() { 
     jQuery(this).html(data); 
     $('#approved_list').show(); 
    $('#waiting_approval_list').hide(); 
      $('#department_waiting_approval_list').hide(); 
      $('#department_logs').hide(); 
    }).fadeIn(100); 

    } 
}) 
}, 100); 

}); 
+1

http://stackoverflow.com/questions/446594/abort-ajax-requests-using-jquery –

回答

1

這可能是有幫助的:

var thisInterval; 
$("#approved").button().click(function() { 

    thisInterval=setInterval(function(){ 
     $.ajax({ 
     type: "GET", 
     url: "holidays/academic_days.php?userid='+$('#approved_list').attr('class')", 
     dataType: "html", 
     success: function(data) { 
     jQuery("#approved_list").fadeOut(10 , function() { 
      jQuery(this).html(data); 
      $('#approved_list').show(); 
     $('#waiting_approval_list').hide(); 
       $('#department_waiting_approval_list').hide(); 
       $('#department_logs').hide(); 
     }).fadeIn(100); 

     } 
    }) 
    }, 100); 

    }); 

製作取消像這樣的按鈕。

$("#cancel").button().click(function() {clearInterval(thisInterval)} 
+0

由於預期不太工作。你知道我如何在ajax成功數據的某個部分setInterval,比如(#somediv)。所以按鈕會加載整個事件,但是然後setInterval在某個div上,它會繼續加載該div的間隔,直到單擊另一個按鈕。 – Codded

+0

我們是不是在做同樣的事情?它會繼續加載該div的間隔,直到單擊另一個按鈕(#cancel)。 – vusan

+0

我的意思是按鈕會加載#approved_list,然後做ajax調用。在#somediv的調用setinterval中嵌套在原始的#approved_list中。因此,它會在按鈕單擊時加載#approved_list,並且只按間隔刷新#somediv – Codded

1

setInterval函數返回稍後可用於清除使用clearInterval例如該間隔的時間間隔的對象的處理程序:

var handler = setInterval(function(){ 
     console.log('interval'); 
    },1000); 

    setTimeout(function(){ 
     clearInterval(handler); 
    },5000);