suchen

Heim  >  Fragen und Antworten  >  Hauptteil

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

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

请问要怎么做呢?

PHP中文网PHP中文网2897 Tage vor528

Antworte allen(6)Ich werde antworten

  • 怪我咯

    怪我咯2017-04-10 14:41:34

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

    Antwort
    0
  • ringa_lee

    ringa_lee2017-04-10 14:41:34

    看一下这个去抖与节流 中的
    _.throttle(fun, time)

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-10 14:41:34

    用个标记变量控制可点击状态
    大概这么写

    http://jsfiddle.net/9np6rwhr/

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:41:34

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

    Antwort
    0
  • 黄舟

    黄舟2017-04-10 14:41:34

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

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

    Antwort
    0
  • 天蓬老师

    天蓬老师2017-04-10 14:41:34

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

    //每隔5秒点击一次
    setInterval(function(){
        $('#id').click();
    },5000);
    

    Antwort
    0
  • StornierenAntwort