第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript 中的倒計時器在輸入新數據后也會顯示舊數據

Javascript 中的倒計時器在輸入新數據后也會顯示舊數據

天涯盡頭無女友 2023-10-14 16:48:41
所以我在這里用 HTML 和 Javascript 編寫一個倒計時器。但我對此有疑問??雌饋硭粫巴洝迸f的輸入數據,并且在我單擊“計算”按鈕后幾乎同時顯示舊的和新的數據。我的代碼似乎有效,但問題是,當我輸入新日期時,它會同時顯示舊計時器和新計時器。例如,如果我輸入 2020 年 12 月 7 日,它將顯示 1 天(一些分鐘和秒,等等),之后如果我在每秒內輸入 2020 年 12 月 8 日,它會顯示 2 天,然后突然變?yōu)?1 天,然后更改到 2 天等。如果我輸入另一個日期,它將快速顯示所有三個計時器。我該如何解決?我認為舊的信息被留下了,我嘗試添加一個聲明來清除“res”部分,但它仍然是相同的。我不知道是什么原因。function calculate() {  var until_date = new Date(document.getElementById("input_date").value).getTime();  var x = setInterval(function() {    var today = new Date().getTime();    var d = until_date - today;    var days = Math.floor(d / (1000 * 60 * 60 * 24));    var hr = Math.floor((d % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));    var min = Math.floor((d % (1000 * 60 * 60)) / (1000 * 60));    var sec = Math.floor((d % (1000 * 60)) / 1000);    document.getElementById("res").innerHTML = days + "d " + hr + "h " + min + "m " + sec + "s ";    if (d < 0) {      clearInterval(x);      document.getElementById("res").innerHTML = "DONE";    }  }, 1000);}<p>Please select a date: <input id="input_date" type="date"></p><button id='calulate' onclick="calculate()">Calculate</button><p id="res"></p>
查看完整描述

1 回答

?
茅侃侃

TA貢獻1842條經驗 獲得超22個贊

只需將區(qū)間變量放在函數外部,并在循環(huán)外再次調用該函數時清除區(qū)間即可。


否則,每個函數調用都會創(chuàng)建一個新的間隔,該間隔將與前一個間隔并行運行。


var x;

function calculate() {

    clearInterval(x);

    var until_date = new Date(document.getElementById("input_date").value).getTime();

    x = setInterval(function () {

        var today = new Date().getTime();

        var d = until_date - today;

        var days = Math.floor(d / (1000 * 60 * 60 * 24));

        var hr = Math.floor((d % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));

        var min = Math.floor((d % (1000 * 60 * 60)) / (1000 * 60));

        var sec = Math.floor((d % (1000 * 60)) / 1000);


        document.getElementById("res").innerHTML = days + "d " + hr + "h " + min + "m " + sec + "s ";


        if (d < 0) {

            clearInterval(x);

            document.getElementById("res").innerHTML = "DONE";

        }

    }, 1000);


}


查看完整回答
反對 回復 2023-10-14
  • 1 回答
  • 0 關注
  • 120 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號