You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

画廊访客计数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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 10:06:02