javascript - 倒计时完成后用按钮替换进度条

标签 javascript

我想在倒计时完成后用按钮替换进度条 所以我使用这段代码

function progress(timeleft, timetotal, $element) {
    var progressBarWidth = timeleft * $element.width() / timetotal;
    $element.find('div').animate({ width: progressBarWidth }, timeleft == timetotal ? 0 : 1000, 'linear').html(timeleft + " sec ");
    if(timeleft > 0) {
        setTimeout(function() {
            progress(timeleft - 1, timetotal, $element);
        }, 1000);
    }
    $('#progressBar').replaceWith('<button>Save Me</button>');
};
progress(20, 20, $('#progressBar'));

但是倒计时结束后按钮没有出现,请检查代码

最佳答案

您需要在计时器结束后调用replaceWith。在您的示例中,您可以使用 else 语句来执行此操作:

if (timeleft > 0) {
    setTimeout(function() {
        progress(timeleft - 1, timetotal, $element);
    }, 1000);
} else {
    $('#progressBar').replaceWith('<button>Save Me</button>')
}

Here is a working example (我使用了您上一个问题中的 HTML 和 CSS)。

关于javascript - 倒计时完成后用按钮替换进度条,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46323938/

相关文章:

javascript - ADAL.js - 获取图形 API 资源的 token

javascript - 更改复选框字段的输入焦点和边距/填充

javascript - 如何从动态创建的div中获取文本框值

javascript - AngularJS 在 ng-repeat 元素中附加 HTML

javascript - 使用 JavaScript 重新定位 HTML DOM 中的元素

javascript - 删除包含特定字符串的 css 类

javascript - google-map-react:元素类型无效:需要一个字符串

javascript - 一个页面中有多个,需要传递数据

javascript - 逗号后不显示小数 ng-repeat

javascript - 将 javascript 日期月份输出为文本?使用 C3.js