js能否给事件触发设置时间间隔条件?

比如说,我想让
$("#id").click(function(){
...
})
每隔5秒才能被触发一次。

请问要怎么做呢?

阅读 17k
6 个回答

如果是在和dom节点有交互的,其实点击完成之后直接 disabled,然后setTimeout启用就行了,最简单的思路

var myTimeout = null;
$("#id").click(function(){
    clearTimeout(myTimeout);
    myTimeout = setTimeout(function() {
        ...
    }, 5e3);
});

@runner_sam 和它查不多的有个Rx库代码子差不多是这样的

    var $meter1 = $(".meter1");
    var meter1Click = Rx.Observable.fromEvemt($meter1, 'clock')
            .throttle(1000); /*这里延时*/
    meter1Click.subscribe(function(e){
        /* Do somthing */
    });

LZ要求的是每隔5秒触发一次,即是周期性的。
setTimeout是一次性的,应该用setInterval啦。
例如这样:

//每隔5秒点击一次
setInterval(function(){
    $('#id').click();
},5000);
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏