SetInterval 不适用于 If 条件

SetInterval is Not Working with If condition

本文关键字:条件 If 适用于 不适用 SetInterval      更新时间:2023-09-26

这种情况setIntervalIdMessages == 0使setInterval不起作用 我不知道为什么

这是使 setInterval 不起作用的所有条件

if (NewMessageCounter > 0 && setIntervalIdMessages == 0)

这是工作if (NewMessageCounter > 0 )

我在 crhome 调试中看到 setIntervalIdMessages 的值为 0 并且看到 setInterval 代码的行正在执行

var setIntervalIdMessages  = 0; 
   $.ajax({
            url: '/P/GetC',
            type: "POST",           
            dataType: 'json',
            success: function (counters) {
                var NewMessageCounter = parseInt(counters.NewMessageCounter, 10);
                var NewWatchedMeCounter = parseInt(counters.NewWatchedMeCounter, 10);

                var glower = $('.glowDiv');
                if (NewMessageCounter > 0 && setIntervalIdMessages == 0) {
                    $('#UserMessagesDiv').addClass('glowDiv');
                    setIntervalIdMessages = window.setInterval(function () {
                        glower.toggleClass('active');
                    }, 500);
                }

        });
我认为

your code should work fine,可能会检查您的if condition if it is satisfying or not

小演示:

  var NewMessageCounter= 4;
 var setIntervalIdMessages  = 0; 
var glower = $('.glowDiv');
if(NewMessageCounter > 0 && setIntervalIdMessages == 0){//your condition comes here
	 setIntervalIdMessages = window.setInterval(function () {
         glower.toggleClass('active');
     }, 500);
}
.active{
  color:blue;
  }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="glowDiv">
     text here
</div>