if else条件

时间:2017-07-22 22:52:47

标签: javascript jquery

当页面打开时,它会自动设置超时以执行任务。 我想要的是在事件发生时改变时间。如果用户单击某个按钮,则会在单击后立即更改时间。

如果用户什么都不做,如果用户点击"#b1" ,应该中断初始超时并在其他时间设置

的情况下开始新的超时

我已尝试过上一段代码,但它只执行上一次提醒。 我怎么能做到这一点?

var clicked = 0;
var time = '';

$('#b1').click(function() {
  clicked = 1;
});

if (clicked == 1) {
  time = 10;
  setTimeout(function() {
    alert('clicked');
  }, time);
} else {
  time = 10000;
  setTimeout(function() {
    alert('nothingDone');
  }, time);
}

1 个答案:

答案 0 :(得分:0)

定义一个全局变量,其中setTimeout是值,如果用户点击clearTimeout()元素,则将变量作为参数调用#b1,然后在事件处理程序中将变量设置为setTimeout()调用



$(function() {

  var clicked = 0;
  var time = '';
  var timer;

  function updateTimer() {
    time = 10;
    timer = setTimeout(function() {
      alert('clicked');
    }, time);
  }

  $('#b1').click(function() {
    clicked = 1;
    clearTimeout(timer);
    updateTimer()
  });

  if (clicked == 1) {
    updateTimer()
  } else {
    time = 10000;
    timer = setTimeout(function() {
      alert('nothingDone');
    }, time);
  }

});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="b1">click</div>
&#13;
&#13;
&#13;