You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

添加点击+1美元按钮后,带10秒计时器的25美元领取按钮失效问题排查

问题根源分析

你遇到的问题核心是新增的+1按钮代码破坏了原有计数器的工作逻辑,具体有两个关键错误:

1. 错误修改了计数器元素的ID

在新增的代码段里有这一行完全错误的代码:

clicks.id = document.querySelector('counter');
  • document.querySelector('counter') 是尝试选择一个名为<counter>的HTML标签,但你的页面里根本不存在这个标签,所以它返回null。
  • 你把原本ID为counter的元素的ID设置成了null,这直接导致原jQuery代码里的$('#counter')再也找不到这个元素——getCounter()和setCounter()函数彻底失效,25美元按钮自然无法正常工作。

2. 计数器数据不同步

新增的Counter函数用独立变量a维护计数,而原25美元按钮是基于#counter元素的内容读取和更新计数的,两者数据源完全脱节,就算ID没被修改,也会出现计数不一致的问题。


修复方案

我们需要修正这两个问题,让两个按钮共享同一个计数数据源,同时保留各自功能:

修复后的完整JavaScript代码

// +1美元按钮部分
const addOneButton = document.querySelector('.addOneButton');
addOneButton.onclick = function() {
    // 直接使用计数器元素的内容作为数据源,和原按钮逻辑对齐
    const currentCount = parseInt(document.getElementById('counter').textContent);
    document.getElementById('counter').textContent = currentCount + 1;
};

// 原25美元计时器按钮部分
$('#btn').prop('disabled',true);
startCountDown();

function getCounter(){
 return parseInt($('#counter').html());
}

function setCounter(count) {
 $('#counter').html(count);
}

$("#btn").click(function() {
 setCounter(getCounter()+25);
 $('#btn').prop('disabled',true);
 startCountDown();
});

function startCountDown() {
 var minutes = 0, seconds = 10;
 $("#countdown").html(`${minutes}:${seconds}`);
 var count = setInterval(function() {
    const secNum = parseInt(seconds);
    // 简化计时结束的判断逻辑,避免字符串转数字的歧义
    if (secNum <= 0 ) {
        $("#countdown").html("Collect");
        clearInterval(count);
        $('#btn').prop('disabled',false);
    } else {
        // 先计算新秒数再格式化显示,解决初始显示延迟问题
        const newSec = secNum - 1;
        seconds = newSec < 10 ? "0" + newSec : newSec;
        $("#countdown").html(`${minutes}:${seconds}`);
    }
 }, 1000);
}

修复说明

  1. 移除错误的ID修改代码:删掉了clicks.id = document.querySelector('counter');这行无效且破坏原有功能的代码,让#counter元素的ID保持正常。
  2. 统一计数数据源:+1按钮现在直接读取和修改#counter元素的内容,和原25美元按钮共享同一个数据源,保证计数完全同步。
  3. 优化计时逻辑:修正了原计时函数里的小瑕疵,让秒数减少和显示的逻辑更顺畅,避免了初始显示10秒后延迟变9秒的问题。

现在两个按钮都能正常工作:点击+1按钮实时增加1美元,25美元按钮在计时结束后点击增加25美元,同时进入10秒冷却,冷却期间按钮禁用。

内容的提问来源于stack exchange,提问作者JustAProgrammer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 05:57:34