我有这个柜台。它是使用Javascript闭包的计数器。您可以通过重置按钮帮助我吗?如果可以的话,请使用这种类型的“计数器”代码,而不要使用其他方法...
HTML代码
<button type="button" onclick="geo()">Count!</button>
<p id="count">0</p>
JAVASCRIPT CODE
<script>
var count= (function () {
var nr = 0;
return function () {nr+= 1; return nr;}
})();
function geo(){
document.getElementById("count").innerHTML = count();
}
</script>
我什至不确定您现在所拥有的是否正常。
const addBtn = document.querySelector('#add');
const resetBtn = document.querySelector('#reset');
const pCount = document.querySelector('#count')
let start = 0;
function add(){
start++
pCount.innerHTML = start
}
function reset(){
start = 0;
pCount.innerHTML = start
}
addBtn.addEventListener('click', add)
resetBtn.addEventListener('click', reset)
<button id="add"> Add </button>
<button id="reset" > Reset </button>
<p id="count"></p>
我对闭包了解不多(似乎非常有趣...),但是将nr变量移出函数之外,然后在nr上调用reset将重置计数器。
var nr = 0;
var count= (function () {
return function () {nr+= 1; return nr;}
})();
function geo(){
document.getElementById("count").innerHTML = count();
}
function reset() {
nr = 0;
document.getElementById("count").innerHTML = nr;
}
<button type="button" onclick="geo()">Count!</button>
<button type="button" onclick="reset()">Reset!</button>
<p id="count">0</p>