求助:点击正确答案触发confetti函数异常,错误答案点击也触发
问题修复方案
你的代码里confetti()已经放在了correct为true的分支里,理论上只有点击正确答案才会触发。现在错误答案也触发,大概率是调用setStatusClass时给错误答案的correct参数传了true,或者参数判断逻辑搞反了,按以下步骤排查修复:
检查
setStatusClass的调用逻辑
找到你绑定点击事件、调用这个函数的代码,确保错误答案对应的调用中,correct参数传的是false。比如选择题场景的正确调用示例:// 示例:选项点击事件(替换成你自己的实际代码) document.querySelectorAll('.answer-option').forEach(option => { option.addEventListener('click', () => { // 根据实际逻辑判断当前选项是否正确,比如用data属性标记 const isCorrect = option.dataset.isCorrect === 'true'; // 确保这里把正确的布尔值传给correct参数 setStatusClass(option, isCorrect); }); });加日志排查参数值
如果不确定参数是否传错,可以在setStatusClass里加日志,确认correct的实际值:function setStatusClass(element, correct){ clearStatusClass(element); console.log('当前correct参数值:', correct); // 查看控制台输出的参数 if(correct){ element.classList.add('correct'); confetti(); }else{ element.classList.add('wrong'); } }排查
confetti函数的其他调用
检查项目中有没有其他地方直接调用了confetti(),比如错误答案的点击事件里有没有额外触发这个函数的代码。
内容的提问来源于stack exchange,提问作者Esteban Chiaromonte
相关产品推荐
相关产品推荐

