如何让这个功能每5秒执行一次?

时间:2015-12-05 22:47:11

标签: javascript html javascript-events

朋友。我有这个代码,我希望每5秒执行一次amurFunc()。 执行是一个监听器,监听用户是否单击了div。他实际上可以每5秒点击一次。你能帮我弄明白我哪里做错了。 代码:

<div id=amur>

</div>

<script>
    document.getElementById("amur").addEventListener('click', amurFunc());
    function amurFunc() {
            var funcTimer = 0;
            while (funcTimer == 0) {
                window.open('http://google.com','_blank');
                funcTimer = 5;
                while (funcTimer > 0) {
                    setInterval(
                        function () {
                            funcTimer--;
                        }, 1000;
                    );
                }
            }
    }
</script>

3 个答案:

答案 0 :(得分:1)

试试这个

<div id="amur" style="background-color:red">
 <p>Test</p>
</div>

var el = document.getElementById('amur');

el.addEventListener('click',amurFunc);


var clicked = 0;
var d = new Date();
var s = d.getTime();
//console.log(s);


function amurFunc(){
    if(clicked==0){
        window.open('http://google.com', '_blank');
        clicked++;
    }else{
        var clickedDate =  new Date();
        var clickedSecond = clickedDate.getTime();
        //console.log(clickedSecond-s);
        if((clickedSecond-s)>=5000){
            window.open('http://google.com', '_blank');
            s = clickedSecond;
        }

    }

}

答案 1 :(得分:0)

这将每5秒开始.isFunction

amurFunc()

但你想每5秒做什么?

你想每5秒打开一次页面吗?

为什么要点击启动它?

打开页面5秒试试这个

setInterval(function() {
    amurFunc();
} ,5000)

更新

这是按钮

setTimeout(function() {
    window.open('http://google.com', '_blank');
}, 5000);

这里是javascript

<input type="button" id="btn" value="">

答案 2 :(得分:0)

最简单的解决方案是使用每5秒重置一次的标志。见下文:

//initially allowed to be clicked
var flag = true;

document.getElementById('amur').onclick = function(){
  if (flag) {
    window.open('http://google.com','_blank');
    //disable click
    flag = false;
    //after 5 secs, click will be enabled again
    setTimeout(function(){
      flag=true;
    },5000);
  }
}