我正在尝试编写一个JS计时器,该计时器将由用户单击id =“start”的按钮触发。
我已经让计时器本身正常工作了,但是当我尝试添加代码来启动单击按钮上的计时器时(id =“start”)我打破它并且不确定原因。
非常感谢任何帮助!
这是JS代码:
$(document).ready(function(){
var count = 0;
$('#start').click(function(){
setInterval(function(){
count++;
$('#timer').html(count + ' tacos seconds');
},1000);
});
});
答案 0 :(得分:1)
$(document).ready(function() {
$('#start').click((function(container) {
var interval;
return function() {
if(interval) clearInterval(interval);
var count = 0;
interval = setInterval(function() {
count++;
$(container).html(count + ' tacos seconds');
}, 1000);
};
})("#timer"));
});
答案 1 :(得分:0)
$(document).ready(function() {
var count = 0;
var myInterval = null;
$('#start').click(function(){
myInterval = setInterval(function(){
count++;
$('#timer').html(count + ' tacos seconds');
},1000);
});
});
在单击处理程序的范围内设置setInterval时,请尝试将其分配给变量以保持声明的间隔为一个级别。这通常对我有用。
答案 2 :(得分:0)
不确定你的目标是什么,但也许你想尝试这样的事情:
var startInterveal;
var timerStarted = false;
var count =0;
$(document).ready(function () {
$('#start').click(function () {
if (!timerStarted) {
timerStarted = true;
count =0;
$(this).attr('disabled', 'disabled');
startInterveal = setInterval('tick();', 1000);
}
});
});
function tick() {
count++;
$('#timer').html(count + ' tacos seconds');
}
答案 3 :(得分:0)
如果你真的想要坚持并有一些可以恢复的东西,那么这是第二个答案:
$(document).ready(function() {
$('#start').click(overboard("#timer"));
$('#start2').click(overboard("#timer2"));
});
function overboard(container) {
var interval;
return function() {
if (interval) clearInterval(interval);
var count = 0;
interval = setInterval(function() {
count++;
$(container).html(count + ' tacos seconds');
}, 1000);
};
}