Applab中JS末尾if语句无法正确显隐元素 total=4时W元素不展示
问题根因
你写在代码末尾的if判断逻辑仅会在脚本初始化加载时执行1次,此时total的初始值为0,所以只会执行展示L元素的分支。后续用户答题过程中total值更新、跳转到结果页时,这部分判断逻辑不会重复触发,自然不会根据最终得分切换展示元素,和Applab平台无关。
修复方案
- 将原末尾的if判断逻辑封装为独立的结果计算函数,还可以简化冗余的判断分支:
function calculateResult() { if (total >= 4) { showElement("W"); hideElement("L"); } else { showElement("L"); hideElement("W"); } }
- 在所有触发跳转到结果页的点击事件中,跳转后调用上述函数,修改第6题的事件绑定代码如下:
//Question six onEvent("q6a1", "click", function() { setScreen("Results"); calculateResult(); }); onEvent("q6a2", "click", function() { setScreen("Results"); total++; calculateResult(); }); onEvent("q6a3", "click", function() { setScreen("Results"); calculateResult(); }); onEvent("q6a4", "click", function() { setScreen("Results"); calculateResult(); });
修改后每次进入结果页都会读取当前最新的得分计算展示元素,即可正常显示W元素。
内容的提问来源于stack exchange,提问作者JohnJAF
相关产品推荐
相关产品推荐

