programing

캔클리어inside setIntervalIntervalIntervalIntervalIntervalIntervalIntervalInterval()?

topblog 2023. 9. 15. 20:40
반응형

캔클리어inside setIntervalIntervalIntervalIntervalIntervalIntervalIntervalInterval()?

bigloop=setInterval(function () {
              var checked = $('#status_table tr [id^="monitor_"]:checked');
                if (checked.index()===-1 ||checked.length===0 || ){
                    bigloop=clearInterval(bigloop);
                    $('#monitor').button('enable');
                }else{

                        (function loop(i) {                           
                            //monitor element at index i
                            monitoring($(checked[i]).parents('tr'));
                            //delay of 3 seconds
                            setTimeout(function () {
                                //when incremented i is less than the number of rows, call loop for next index
                                if (++i < checked.length) loop(i);
                            }, 3000);
                        }(0)); //start with 0
                }                            
            }, index*3000); //loop period

위의 코드를 가지고 있는데 작동할 때도 있고, 작동하지 않을 때도 있습니다.저는 그 문제가 해결되지 않았는지 궁금합니다.간격이 실제로 타이머를 지웁니다?이것이 있기때문에monitor버튼은 에 있을 때만 비활성화됩니다.monitoring기능.다른게 있습니다.clearInterval어떤 원소가 불렸을 때.outputRemove클릭됩니다.아래 코드 참조:

//remove row entry in the table      
        $('#status_table').on('click', '.outputRemove', function () {
            deleted= true;
            bigloop= window.clearInterval(bigloop);
            var thistr=$(this).closest('tr');
            thistr.remove();
            $('#monitor').button('enable');

            $('#status_table tbody tr').find('td:first').text(function(index){
               return ++index;

            });
        });

그러나 다시 비활성화되기 전에 잠시 활성화되었습니다.그 기능에서 프로그램을 꺼낼 수 있습니까?

네, 가능합니다.테스트할 수도 있습니다.

var i = 0;
var timer = setInterval(function() {
  console.log(++i);
  if (i === 5) clearInterval(timer);
  console.log('post-interval'); // interval will be cleared after completing this whole block
}, 200);

이 예에서 이 타이머는 다음 시간에i5에 달합니다.

언급URL : https://stackoverflow.com/questions/16599878/can-clearinterval-be-called-inside-setinterval

반응형