簡體   English   中英

JS 的時間變化

[英]Timing Changes With JS

我希望在不同的時間執行不同的功能,而它們不會相互重疊。

一點上下文 - 我想一次刪除一個頁面的元素,而不是在一段時間內一次刪除所有元素。

例如,在凌晨 1:00 刪除元素 1,然后在凌晨 2:00 刪除元素 1 + 2,依此類推。

元素的移除將使用 JQuery 完成。

編輯:

    window.setInterval(function(){ // Set interval for checking
    var date = new Date(); // Create a Date object to find out what time it is
    if(date.getHours() === 12 && date.getMinutes() === 18){ // Check the time
        $(function() {
    //Remove Elements
    $('#element1').remove();
       })
}, 10000); // Repeat every 10000 milliseconds (10 seconds)

到目前為止,這是我對一個函數進行計時的方法 - 看到錯誤: Uncaught SyntaxError: Unexpected token , .

這是一個簡單的代碼片段,它有兩個用於計划刪除元素的變體。

  • 選項 1:以毫秒為單位指定after ,它將在毫秒過去后通過給定的選擇器刪除元素。 調用ScheduledRemover.work(settings);后超時開始計數ScheduledRemover.work(settings);
  • 選項 2:將at指定為可能具有以下結構的對象

__

at: {
    h: 14, // (Optional) the hour at which remove should be executed
    m: 30, // (Optional) the minute at which remove should be executed
    s: 23  // (Optional) the second at which remove should be executed
}

該代碼將計算當前時間和所需刪除時間的差值,並使用setTimeout設置超時以執行刪除。 這樣你就不必每次都在setInterval檢查時間是否到了。

希望這是有幫助的。 如果有任何問題,請告訴我。 干杯!

 var ScheduledRemover = (function() { function _work(settings) { for (let i = 0; i < settings.length; i++) { let schedulerRemove = settings[i]; if (schedulerRemove.at) { /* Remove element at specific time */ var currentTime = new Date(); var removalTime = new Date(); if (typeof schedulerRemove.at.h === 'number') { removalTime.setHours(schedulerRemove.at.h); } if (typeof schedulerRemove.at.m === 'number') { removalTime.setMinutes(schedulerRemove.at.m); } if (typeof schedulerRemove.at.s === 'number') { removalTime.setSeconds(schedulerRemove.at.s); } var removeAfter = removalTime - currentTime; if (removeAfter >= 0) { /* If difference is less than 0 then time for the removal passed */ setTimeout(function() { $(schedulerRemove.selector).remove(); console.log(schedulerRemove.selector + ' removed ...'); }, removeAfter); } else { console.log('Time passed for removing ' + schedulerRemove.selector); } } else if (schedulerRemove.after) { /* Remove element after specific time */ setTimeout(function() { $(schedulerRemove.selector).remove(); console.log(schedulerRemove.selector + ' removed ...'); }, schedulerRemove.after); } } } return { work: _work } }()); var settings = [{ selector: '#element1', after: 2000 }, { selector: '#element2', after: 5000 }, { selector: '#element3', at: { h: 14, m: 49 } }, { selector: '#element4', at: { h: 14, m: 53, s: 1 } }, { selector: '#element5', after: 30000 } ]; ScheduledRemover.work(settings);
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="element1">Element 1</div> <div id="element2">Element 2</div> <div id="element3">Element 3</div> <div id="element4">Element 4</div> <div id="element5">Element 5</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM