Flask开发井字棋游戏:点击方块不显示X/O问题求助
问题修复:Flask井字棋点击方块不显示X/O
核心问题分析
当前点击方块无反应的根本原因是JavaScript文件未正确加载,浏览器找不到绑定点击事件的脚本,导致点击逻辑完全失效。次要问题是JS中的逻辑运算符错误,会影响后续胜负判断。
修复步骤
1. 修正HTML中JS文件的引用路径
Flask要求静态文件(JS、CSS、图片)必须放在static目录下,需使用url_for生成正确的静态资源路径。
原HTML中的脚本引用:
<script src="script.js"></script>
修改为:
<script src="{{ url_for('static', filename='script.js') }}"></script>
2. 确认项目目录结构正确
确保你的Flask项目结构符合规范,否则静态资源无法被正确访问:
tic-tac-toe/ ├── app.py ├── templates/ │ └── index.html └── static/ ├── style.css └── script.js
3. 修复JS中的逻辑运算符错误
在winChecker函数中,位运算符&被错误用于逻辑判断,会导致非预期的结果,替换为逻辑与&&,同时建议使用严格不等于!==提升代码严谨性:
原JS代码片段:
if (element1 != "" && (element2 != "") & (element3 != "")) {
修改为:
if (element1 !== "" && element2 !== "" && element3 !== "") {
4. (可选)修正JS注释错误
JS中有一处注释笔误,不影响功能但建议修正:
//Display Y element.innerText = "O";
改为:
//Display O element.innerText = "O";
验证修复
完成上述修改后,重启Flask应用:
python app.py
访问页面后点击方块,即可正常显示X/O,后续胜负判断逻辑也能正常工作。
内容的提问来源于stack exchange,提问作者miayang1661
相关产品推荐
相关产品推荐

