怎么让click事件在指定时间内只响应一次,jquery。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么让click事件在指定时间内只响应一次,jquery。相关的知识,希望对你有一定的参考价值。

问题分析:

想要在一定时间内,事件回调函数仅执行一次,需要在外部做一个计时器变量。当进入事件的回调函数时,启动这个计时器,倒计时N秒后,计时器自动关闭。

每次进入事件回调函数的时候都要判断这个计时器是否为启动状态,如果是启动状态,直接跳出不执行事件即可。

举例如下:

案例为一个按钮的点击事件,最少10秒可执行一次,如果允许执行将提醒“按钮事件被触发”,如果不允许执行将提醒“目前按钮事件不允许被触发”。

HTML代码:

<button>这是一个按钮</button>

jQuery代码:

var time = 0;
$(\'button\').click(function() 
    //判断计时器是否处于关闭状态
    if (time == 0) 
        time = 10; //设定间隔时间(秒)

        //启动计时器,倒计时time秒后自动关闭计时器。
        var index = setInterval(function()
            time--;
            if (time == 0) 
                clearInterval(index);
            
        , 1000);

        alert(\'按钮事件被触发\');
    else
        alert(\'目前按钮事件不允许被触发\');
    
);

首次点击按钮的结果:


在10秒内再次点击按钮的结果:

参考技术A 用bind绑定click事件函数,然后用unbind()移除事件绑定。
或者用one()来绑定click,这个只执行一次就会自动删除。

每当我为知友回答问题翻那些我自己都不爱看的书的时候,我都觉得自己很高尚。本回答被提问者和网友采纳
参考技术B 只执行一次,可以在执行了click事件之后,移除click事件!
如果想自动触发click的话,调用jQuery代码click()方法就行了

uni-app防抖和节流

参考技术A 所谓防抖,就是指触发事件后,就是把触发非常频繁的事件合并成一次去执行。即在指定时间内只执行一次 回调函数 ,如果在指定的时间内又触发了该事件,则回调函数的执行时间会基于此刻重新开始计算。

所谓节流,是指频繁触发事件时,只会在指定的时间段内执行事件回调,即触发事件间隔大于等于指定的时间才会执行回调函数。

具体使用:

以上是关于怎么让click事件在指定时间内只响应一次,jquery。的主要内容,如果未能解决你的问题,请参考以下文章

函数节流与函数防抖

jquery如何click事件时候 ,让某个函数暂停或终止?

uni-app防抖和节流

jquery为啥触发多次click事件

js click事件防止重复点击

前端手写篇