技术求助:文本框无法显示变量Stars递增后的数值
问题分析与解决方法
首先来看你原代码里的核心问题:在mouseover事件处理函数中,你每次都用var Stars声明了一个局部变量,这会直接覆盖全局作用域里的Stars变量。也就是说,你在函数里递增的只是局部的Stars,全局那个初始值为0的变量根本没被修改,文本框自然不会同步更新数值。
修正后的代码(对应你解决问题后的逻辑)
var Stars = 0; setText("Stars", Stars); onEvent("FF1", "mouseover", function(event) { // 移除var,直接操作全局的Stars变量 if (Star11 === true) { console.log("+1 star"); Stars = Stars + 1; } if (Star12 === true) { console.log("+1 star"); Stars = Stars + 1; } // 变量更新后主动调用setText,同步文本框内容 setText("Stars", Stars); });
关键修正细节:
- 去掉事件函数内的
var声明:确保操作的是全局的Stars变量,而不是重新创建一个局部变量“遮蔽”全局变量。 - 在事件处理结尾添加
setText调用:界面不会自动监听变量变化,必须在变量更新后主动触发文本框内容刷新,才能让用户看到最新的数值。
内容的提问来源于stack exchange,提问作者Logan Williams
相关产品推荐
相关产品推荐

