Javascript 函数在单击按钮之前激活
Javascript Function activates before button is clicked
如果单击按钮时满足要求,它将显示倒数计时器。问题是它甚至在您单击按钮之前就会显示倒数计时器。我不确定我忽略了什么。
<input id="upgrade" type="button" value="Upgrade" onclick="timer();" />
<br><br><br><br>
<p id="countdown_timer"></p>
<script>
function display_timer(){
document.getElementById("countdown_timer").innerHTML = "<span id='countdown' class='timer'></span>";
}
</script>
<script>
var currently_upgrading = 0;
var current_ore = 398;
var current_crystal = 398;
var upgradeTime = 172801;
var seconds = upgradeTime;
function timer() {
if(currently_upgrading == 1){alert('You are already upgrading a module.');return;}
if(current_ore <= 299){alert('You need more ore.');return;}
if(current_crystal <= 299){alert('You need more crystal.');return;}
display_timer();
var days = Math.floor(seconds/24/60/60);
var hoursLeft = Math.floor((seconds) - (days*86400));
var hours = Math.floor(hoursLeft/3600);
var minutesLeft = Math.floor((hoursLeft) - (hours*3600));
var minutes = Math.floor(minutesLeft/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('countdown').innerHTML = days + ":" + hours + ":" + minutes + ":" + remainingSeconds;
if (seconds == 0) {
clearInterval(countdownTimer);
document.getElementById('countdown').innerHTML = "Completed";
} else {
seconds--;
}
}
var countdownTimer = setInterval('timer()', 1000);
</script>
您需要
将countdownTimer
变量移动到timer()
函数中。
尝试将timer()
的最后一行更改为如下所示:
if (seconds == 0) {
document.getElementById('countdown').innerHTML = "Completed";
} else {
seconds--;
setTimeout(timer, 1000);
}
并移除setInterval
行。
一般来说,setTimeout
比setInterval
更受欢迎,因为它不需要托管状态(在您的示例中countdownTimer
),并且更加灵活。
另请注意,在 setTimeout('timer()', 1000)
中传递字符串已经过时了,只需传递一个函数:setTimeout(timer, ...)
。
此行
var countdownTimer = setInterval('timer()', 1000);
将在页面加载后以及单击按钮时执行 1 秒,这将调用 display_timer
函数。
>你在setInterval函数中调用了它,所以它会立即启动,因为setInterval函数在页面加载后运行,而不是在点击时运行,setInterval使用你的函数
相关文章:
- 如何通过按键激活按钮应用CSS效果
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 如何在ASP.NET中单击按钮后激活启动选项卡
- 在单击按钮时激活按钮的悬停状态,直到单击另一个按钮(Javascript/JQuery)
- 如何在使用jquery向数据库发送数据时取消激活的按钮
- 将按钮绑定到几个基于文本框中值的大小而激活的文本框
- 如何使用jQuery激活按钮
- 新创建的按钮(通过createElement(“button”))激活自身.如何阻止这种情况
- jQueryui上的两个复选框选中需要按钮激活和未选中禁用
- 如何使用Xpages onchange事件激活按钮
- Django for 循环在按下按钮时多次激活视图
- 有选择地激活按钮
- 如何在默认情况下激活按钮
- 如何使用java脚本或jquery激活按钮
- Chrome.runtime不与激活按钮工作
- 如何使用JavaScript激活按钮样式
- 在Angularjs中选中一个或多个复选框后,激活按钮
- 如何使用javascript激活按钮时,复选框被选中
- 如何同时激活按钮个人资料和帖子
- 在javascript中单击另一个按钮后激活按钮