1

一連のボタンがあり、foreachボタンには個別の.click(function(){

すなわち

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

そのdivのデータを更新するajaxのsetIntervalがあります。私が直面している問題は、ユーザーが別のボタンをクリックすると、現在のボタンをクリックしてajax呼び出しを停止し、新しいボタンをクリックしたいということです。

これが理にかなっていることを願っています、事前に感謝します。

$("#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);

});
4

2 に答える 2

1

setInterval関数は、その間隔オブジェクトのハンドラーを返します。このハンドラーは、後でclearIntervalを使用してその間隔をクリアするために使用できます。次に例を示します。

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

    setTimeout(function(){
      clearInterval(handler);
    },5000);
于 2012-09-20T11:11:59.487 に答える
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)}
于 2012-09-20T11:13:57.397 に答える