事件监听器,用于检测小时

时间:2018-08-14 17:35:25

标签: javascript jquery html html5

我正在做一个简单的脚本来检测12点钟的时间,是否显示了某个div,如果不是,则保持隐藏。所以总体思路是这样的:

function displayDiv() {    
    d = new Date();
    if(12 === d.getHours()){
        idMain.style.display = 'block';
    } else {
        idMain.style.display = 'none';
    }
}

但是我希望在事件侦听器中使用它,因此在该小时时,它会自动显示div或将其隐藏。像这样:

document.addEventListener(d.getHour() === 12, displayDiv);

或者类似的东西,但我不知道如何建立参数以获得所需的响应或使其起作用。

谢谢

3 个答案:

答案 0 :(得分:5)

您可以使用setInterval每分钟(60000毫秒)运行该功能。

function displayDiv() {    
    d = new Date();
    if(12 === d.getHours()){
        idMain.style.display = 'block';
    } else {
        idMain.style.display = 'none';
    }
}
setInterval(displayDiv, 60000);

答案 1 :(得分:1)

我完全同意使用setInterval的Hev1解决方案(使用他的实现)。不过,这里有一些其他信息:

setInterval接受2个参数。第一个参数是您要在特定时间间隔执行的回调函数。第二个参数是您希望函数执行的毫秒数。

我还要指出,如果您需要清除间隔,则还有一个用于此调用clearInterval的函数。为此,您必须将时间间隔存储在变量中,这是一个示例:

const myInterval = setInterval(increase, 1000);

let index = 5;

function increase() {
  if (index === 0) {
    clear();
  } else {
    console.log(index);
    index--;
  }
}

function clear() {
    clearInterval(myInterval);
    console.log('interval cleared');
}

将间隔存储在变量中之后,当间隔达到0时,将调用clear()方法。在清除函数clearInterval中将调用该函数以删除间隔。

答案 2 :(得分:0)

我们可以使用以下当前时间值来设置if条件。 var date = new Date(); var hours = dates.getHours(); var分钟= dates.getMinutes();