为什么当比较运算符不正确时警报会跳转?

Why alert is jumping when comparison operator isn't true?

我希望当计数 = 0 时,警报 "yes" 并且当计数 != 0 时警报 "no"。所有的工作都在寻找,直到计数器为 0,alert "yes" 才开始寻找,但 alert "no" 也会跳转。这是为什么?我希望任何人都能够用正确的代码帮助我,谢谢,对不起我的英语

  var i=5;
  function countDown(i, callback) {
      callback = callback || function(){};
      var int = setInterval(function() {
          document.getElementById("displayDiv").innerHTML =  i;
          i-- || (clearInterval(int), callback());
      }, 1000);
  }
  countDown(i, function(){
      if($("button").click(function(){
                              alert('yes'); 
            })); 
   });

  if (i > 1){
            if($("button").click(function(){
                              alert('No');  
            }));     
  };
  return;

代码here

您需要检查 click() 处理程序中的 contdown。 此时,当计数器达到 0 时,您正在分配 "alert('yes')" 处理程序,但是 "alert('no')" 处理程序也被分配,并且从未被删除。

怎么样:

$(function() {
    var i=5;
    
    var int = setInterval(function() {
        document.getElementById("displayDiv").innerHTML =  i;
        
        if(i === 0){
          clearInterval(int)
        }
        
        i--;
    }, 1000);
    
    $("button").click(function(){
      var text = i > 0 ? 'no' : 'yes';
      alert(text); 
    });     

});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<span id="displayDiv"></span>
<button>Go</button>