当页面打开时,它会自动设置超时以执行任务。 我想要的是在事件发生时改变时间。如果用户单击某个按钮,则会在单击后立即更改时间。
如果用户什么都不做,如果用户点击"#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);
}
答案 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;