我想在已经运行了几次之后再次运行我的代码(倒计时)。
使用Javascript:
var btn1 = document.getElementById('btn1');
function timer() {
var countdown = 1 * 60 * 1000;
var timerId = setInterval(function() {
countdown -= 1000;
var min = Math.floor(countdown / (60 * 1000));
var sec = Math.floor((countdown - (min * 60 * 1000)) / 1000);
if (countdown <= -1) {
//alert("30 min!");
$(".countTime").html('<div class="countTime"><input type="button" id="btn1" value="Press me!"/></div>');
clearInterval(timerId);
//doSomething();
} else {
if(min > 0) {
$(".countTime").html(min + " : " + sec);
} else {
$(".countTime").html(sec);
}
}
}, 1000); //1000ms. = 1sec.
}
btn1.onclick = timer;
HTML:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="countTime">
<input type="button" id="btn1" value="Press me!"/>
</div>
它只运行一次。按下按钮并再次运行倒计时不起作用。
答案 0 :(得分:0)
btn1.onclick = timer;
你必须像这样绑定点击;
$(document).on("click", btn1, function(){
timer();
});
答案 1 :(得分:0)
更改html会删除点击处理程序,因此您需要在将html更改回按钮后再次设置它。
您可以使用$("#btn1").click(timer);
所以代码将成为
...
if (countdown <= -1) {
//alert("30 min!");
$(".countTime").html('<div class="countTime"><input type="button" id="btn1" value="Press me!"/></div>');
$("#btn1").click(timer); // <-- rebinding click handler
clearInterval(timerId);
//doSomething();
} else {
...
答案 2 :(得分:0)
在倒计时&lt; = -1条件中添加了onclick事件。希望这可以帮助。
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js">
</script>
<script>
var btn1 = document.getElementById('btn1');
function timer(){
console.log("yo in method")
var countdown = 1 * 6 * 1000;
var timerId = setInterval(function(){
countdown -= 1000;
var min = Math.floor(countdown / (60 * 1000));
var sec = Math.floor((countdown - (min * 60 * 1000)) / 1000);
if (countdown <= -1) {
//alert("30 min!");
$(".countTime").html('<div class="countTime"><input type="button"
id="btn1" value="Press me!"/></div>');
$("#btn1").click(timer);
clearInterval(timerId);
//doSomething();
}
else {
if(min > 0){
$(".countTime").html(min + " : " + sec);
}
else {
$(".countTime").html(sec);
}
}
}, 1000); //1000ms. = 1sec.
}
</script>
<div class="countTime">
<input type="button" id="btn1" value="Press me!" onClick="timer()"/>
</div>