clearInterval 在我的 JS 代码中不起作用

clearInterval does not work in my JS code

我花了很长时间试图解决这个问题。我知道有多个在线问题和 Whosebug 解决了这个问题,我试图在我的案例中做完全相同的事情但是我似乎 运行 进入 clearInterval 不起作用的问题。

我的代码:

 <div class="row">
    <button type="button" class="btn btn-secondary" onclick="FlashText()">Flash</button>
        <span style="font-size:14px; font-weight:bold;" id="showText">Flash Text</span>
    </div>

JS:

 function FlashText()
 {
      var timer = setInterval(blink_text,1000);

      $.ajax({
       
           url: some url,
           success: function(){
                $('#showText').text("Other Text");
               clearInterval(timer);

           }
      })
 }

function blink_text()
  {
      $('#showText').fadeOut(750);
      $('#showText').fadeIn(750);
  }

我点击按钮,我看到文字在闪烁。成功后,我使用 Debugger; 查看 timer,它显示的值为 19。我单步执行这条线,但没有任何反应。

文本变为 Other Text 并且一直闪烁。

我查看了开发者工具中的控制台,没有任何错误。我知道 timer 没有超出范围,因为我在同一个函数中使用它。一切似乎都恰如其分。但它不起作用。可能是什么问题?

目标是保持文本闪烁,直到我从 ajax 调用中收到 Success,在这种情况下,我想将文本更改为 Other Text 并停止 fadeIn/Out.

用css让文字闪现会方便很多

.blink_me {
  animation: blinker 1s linear infinite;
 }

然后添加和删除class

function FlashText()
{
  $('#showText').addClass(‘blink_me’);

  $.ajax({
   
       url: some url,
       success: function(){
            $('#showText').reomveClass(‘blink_me’).text("Other Text");         
       }
  })

}