Cookie Clicker点击达10000次自动切换图片功能失效问题
故障根因
你写的阈值判断切图逻辑没有绑定在图片点击的执行链路里,仅会在页面初次加载、手动刷新页面时执行一次。点击图片累加计数的过程中,根本不会触发这段判断代码,自然无法在计数达标时实时切换图片,只有刷新页面重新跑一遍全局代码才会触发判断。
修复步骤
- 把计数累加、实时计数展示、阈值判断、切图逻辑全部绑定到目标图片的点击回调中,保证每次点击后都会校验是否达到切换阈值
- 计数达到10000时立刻执行图片替换,同时同步写入localStorage,无需等用户手动触发保存
- 页面初始化时优先读取localStorage中存储的历史点击数,若历史值已达阈值直接渲染新图片,避免刷新后状态异常
修复后参考代码
// 页面初始化加载历史状态 let clickercount = parseInt(localStorage.getItem('clickCount') || 0); // 渲染初始计数 $('.countDisplay').text(clickercount); // 初始化图片状态,历史记录达标则直接显示新图 if (clickercount >= 10000) { $(".clickImg").attr("src", "new_image.png"); } // 绑定图片点击核心逻辑 $(".clickImg").on('click', function() { // 达标后停止累加,避免无意义计数 if (clickercount < 10000) { clickercount++; // 实时更新页面上的计数展示 $('.countDisplay').text(clickercount); // 每次点击后校验阈值 if (clickercount >= 10000) { // 实时替换图片 $(this).attr("src", "new_image.png"); // 达标立刻持久化存储 localStorage.setItem('clickCount', clickercount); } } }) // 原有手动保存逻辑保留 function saveCurrentStatus() { localStorage.setItem('clickCount', clickercount); } $('#saveButton').on('click', function () { saveCurrentStatus() }); // 原有重置逻辑保留 $('#resetButton').on('click', function () { localStorage.clear(); location.reload(true) });
补充优化建议:可以加个10秒一次的定时自动保存逻辑,避免用户中途关闭页面丢失未到阈值的点击进度。
内容的提问来源于stack exchange,提问作者user12657
相关产品推荐
相关产品推荐

