简单JavaScript计数器函数
我想做一个计数器函数,并精确设置开始时间和显示位置的变量 因此,如果我希望每页有多个计数器,我可以轻松管理它:简单JavaScript计数器函数,javascript,counter,Javascript,Counter,我想做一个计数器函数,并精确设置开始时间和显示位置的变量 因此,如果我希望每页有多个计数器,我可以轻松管理它: $(document).ready(function() { // set time and place (where to display the counter) function countDown(time, place){ if(time > 0){
$(document).ready(function() {
// set time and place (where to display the counter)
function countDown(time, place){
if(time > 0){
time--;
setInterval(function(){countDown(time,place)}, 1000);
} // end if
if(time == 0)
{
window.clearInterval(time);
}
} // end function
$('.click').click(function(){
countDown(30, '#counter');
});
}); // end DOM
</script>
</head>
<body>
<div class="click">clickme</div>
<br />
<div id="counter">30</div>
</body>
$(文档).ready(函数(){
//设置时间和地点(显示计数器的位置)
功能倒计时(时间、地点){
如果(时间>0){
时间--;
setInterval(函数(){倒计时(时间、地点)},1000);
}//如果结束,则结束
如果(时间==0)
{
窗口。清除间隔(时间);
}
}//结束函数
$('.click')。单击(函数(){
倒计时(30,“计数器”);
});
}); // 末端DOM
点击我
30
试试这个:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
var myVar;
var clickcount=0;
function countDown (time, place) {
if (time > 0) {
$(place).html(time);
time--;
myVar=setTimeout(function () { countDown(time, place); }, 1000);
}
}
function startreset(time,place){
clickcount++;
if(clickcount % 2 === 0){
clearTimeout(myVar);
} else {
countDown(time,place);
}
}
$('.click').click(function(){
startreset(30, '#counter');
});
</script>
</head>
<body>
<div class="click" onClick="javascript:countDown(30,'#counter');">clickme</div>
<br />
<div id="counter">30</div>
</body>
var-myVar;
var-clickcount=0;
功能倒计时(时间、地点){
如果(时间>0){
$(地点).html(时间);
时间--;
myVar=setTimeout(函数(){countDown(time,place);},1000);
}
}
功能启动设置(时间、地点){
点击计数++;
如果(单击计数%2==0){
清除超时(myVar);
}否则{
倒计时(时间、地点);
}
}
$('.click')。单击(函数(){
startreset(30,“计数器”);
});
点击我
30
试试这个:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
var myVar;
var clickcount=0;
function countDown (time, place) {
if (time > 0) {
$(place).html(time);
time--;
myVar=setTimeout(function () { countDown(time, place); }, 1000);
}
}
function startreset(time,place){
clickcount++;
if(clickcount % 2 === 0){
clearTimeout(myVar);
} else {
countDown(time,place);
}
}
$('.click').click(function(){
startreset(30, '#counter');
});
</script>
</head>
<body>
<div class="click" onClick="javascript:countDown(30,'#counter');">clickme</div>
<br />
<div id="counter">30</div>
</body>
var-myVar;
var-clickcount=0;
功能倒计时(时间、地点){
如果(时间>0){
$(地点).html(时间);
时间--;
myVar=setTimeout(函数(){countDown(time,place);},1000);
}
}
功能启动设置(时间、地点){
点击计数++;
如果(单击计数%2==0){
清除超时(myVar);
}否则{
倒计时(时间、地点);
}
}
$('.click')。单击(函数(){
startreset(30,“计数器”);
});
点击我
30
试试这个:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
var myVar;
var clickcount=0;
function countDown (time, place) {
if (time > 0) {
$(place).html(time);
time--;
myVar=setTimeout(function () { countDown(time, place); }, 1000);
}
}
function startreset(time,place){
clickcount++;
if(clickcount % 2 === 0){
clearTimeout(myVar);
} else {
countDown(time,place);
}
}
$('.click').click(function(){
startreset(30, '#counter');
});
</script>
</head>
<body>
<div class="click" onClick="javascript:countDown(30,'#counter');">clickme</div>
<br />
<div id="counter">30</div>
</body>
var-myVar;
var-clickcount=0;
功能倒计时(时间、地点){
如果(时间>0){
$(地点).html(时间);
时间--;
myVar=setTimeout(函数(){countDown(time,place);},1000);
}
}
功能启动设置(时间、地点){
点击计数++;
如果(单击计数%2==0){
清除超时(myVar);
}否则{
倒计时(时间、地点);
}
}
$('.click')。单击(函数(){
startreset(30,“计数器”);
});
点击我
30
试试这个:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
var myVar;
var clickcount=0;
function countDown (time, place) {
if (time > 0) {
$(place).html(time);
time--;
myVar=setTimeout(function () { countDown(time, place); }, 1000);
}
}
function startreset(time,place){
clickcount++;
if(clickcount % 2 === 0){
clearTimeout(myVar);
} else {
countDown(time,place);
}
}
$('.click').click(function(){
startreset(30, '#counter');
});
</script>
</head>
<body>
<div class="click" onClick="javascript:countDown(30,'#counter');">clickme</div>
<br />
<div id="counter">30</div>
</body>
var-myVar;
var-clickcount=0;
功能倒计时(时间、地点){
如果(时间>0){
$(地点).html(时间);
时间--;
myVar=setTimeout(函数(){countDown(time,place);},1000);
}
}
功能启动设置(时间、地点){
点击计数++;
如果(单击计数%2==0){
清除超时(myVar);
}否则{
倒计时(时间、地点);
}
}
$('.click')。单击(函数(){
startreset(30,“计数器”);
});
点击我
30
您可能遇到的问题是多次调用setInterval。setInterval不仅仅是等待您告诉它的x毫秒,然后调用您的方法,它还会继续每隔x毫秒调用您的方法。因此,当您第一次调用countDown时,会为函数设置一个间隔。该间隔到期,并再次调用倒计时。到目前为止一切正常,但现在第二个倒计时调用建立了另一个setInterval。程序将等待x毫秒从第二个setInterval调用倒计时,但它将从第一个setInterval调用倒计时
…换句话说,您不应该重复调用setInterval。您需要的是setTimeout,它等待指定的时间量,然后调用指定的方法一次
或者,如果您今天感觉不到递归:
function countDown (time, place) {
var interval = setInterval(function () {
if (time > 0) {
time--;
$(place).html(time);
} else {
window.clearInterval(interval);
}
}, 1000);
}
它利用setInterval,但只使用一次
JSFiddle提供:您可能遇到的问题是多次调用setInterval。setInterval不仅仅是等待您告诉它的x毫秒,然后调用您的方法,它还会继续每隔x毫秒调用您的方法。因此,当您第一次调用countDown时,会为函数设置一个间隔。该间隔到期,并再次调用倒计时。到目前为止一切正常,但现在第二个倒计时调用建立了另一个setInterval。程序将等待x毫秒从第二个setInterval调用倒计时,但它将从第一个setInterval调用倒计时 …换句话说,您不应该重复调用setInterval。您需要的是setTimeout,它等待指定的时间量,然后调用指定的方法一次 或者,如果您今天感觉不到递归:
function countDown (time, place) {
var interval = setInterval(function () {
if (time > 0) {
time--;
$(place).html(time);
} else {
window.clearInterval(interval);
}
}, 1000);
}
它利用setInterval,但只使用一次
JSFiddle提供:您可能遇到的问题是多次调用setInterval。setInterval不仅仅是等待您告诉它的x毫秒,然后调用您的方法,它还会继续每隔x毫秒调用您的方法。因此,当您第一次调用countDown时,会为函数设置一个间隔。该间隔到期,并再次调用倒计时。到目前为止一切正常,但现在第二个倒计时调用建立了另一个setInterval。程序将等待x毫秒从第二个设置间隔调用倒计时,