画廊访客计数JS程序Previous Entries统计按钮功能异常求助
问题修复方案
问题根因
- 语法错误:JavaScript中没有
pass关键字,你在peopleInShop函数的else分支写的pass会抛出引用错误,只有当count == 6时不会走到该分支,不会触发报错,所以按钮绑定的后续previousVisitors函数只有满员时才会正常执行,对应你遇到的「仅在画廊满员时才开始计数」问题 - 变量作用域错误:
previousVisitors函数中每次调用都会把变量a初始化为0再加1,变量没有全局持久化,所以统计值永远最高为1 - 逻辑瑕疵:当前只要点击Entry按钮就会触发统计,哪怕访客被拦截未成功进入画廊,不符合「入场访客统计」的实际需求
修复后的代码
JS代码
let count = 0 // 新增全局历史访客统计变量 let previousCount = 0 let entryEl = document.getElementById("entry-el") let leftEl = document.getElementById("left-el") let countEl = document.getElementById("count-el") let previousEl = document.getElementById("previous-el") function peopleInShop() { count += 1 if (count <= 5) { window.alert("Welcome") // 仅成功入场时统计历史访客 previousVisitors() countEl.textContent = count } else { window.alert("您现在无法进入画廊,请等待有人离开后再尝试!") count -= 1 } } function left() { count -= 1 if (count < 0) { count = 0 } countEl.textContent = count } function previousVisitors() { previousCount += 1 previousEl.textContent = previousCount }
HTML代码(删除按钮上冗余的previousVisitors调用)
<h1>当前画廊内人数:</h1> <h2 id="count-el">0</h2> <button id="entry-el" onclick="peopleInShop()">进入</button> <button id="left-el" onclick="left()">离开</button> <p>历史入场人次:</p> <h3 id="previous-el">0</h3> <br> <p><u>画廊最大承载量为5人</u></p>
内容的提问来源于stack exchange,提问作者Rafal Jagas
相关产品推荐
相关产品推荐

