函数外访问变量值异常:点击切换暗黑模式后logo图片不更新如何修复
问题原因
- 切换逻辑错误:
toggle函数内固定将dark设为false,没有实现状态切换,点击按钮后dark值永远不会回到true。 - 条件判断语法错误:
if (dark = false)使用了赋值运算符=,会直接给dark赋值为false,且判断结果永远为假,始终执行else分支加载黑色logo。 - 执行逻辑位置错误:当前logo路径切换的代码仅在页面首次加载时执行一次,点击按钮触发toggle函数时不会重新运行这段逻辑,logo路径不会更新。
修复代码
删除原全局的if-else判断,将logo切换逻辑整合到toggle函数内,修正语法问题:
let dark = true; function toggle() { // 切换dark状态 dark = !dark; document.body.classList.toggle('dark-mode'); // 每次切换都更新logo路径 if (dark === false) { document.getElementById("logo").src = "../../img/Kevin D (White).png"; } else { document.getElementById("logo").src = "../../img/Kevin D (Black).png"; } }
内容的提问来源于stack exchange,提问作者Kevin D
相关产品推荐
相关产品推荐

