解决重复点击onClick事件,多次触发问题

在配置文件中加入一下代码,即可解决全局的onClick重复点击。此方法是重写ngClick事件,可以保护多次点击

app.config([‘$provide‘, function ($provide) {
        $provide.decorator(‘ngClickDirective‘,[‘$delegate‘,‘$timeout‘, function ($delegate,$timeout) {
            var original = $delegate[0].compile;
                  var delay = 500;
            $delegate[0].compile = function (element, attrs, transclude) {

                var disabled = false;
                function onClick(evt) {
                    if (disabled) {
                        evt.preventDefault();
                        evt.stopImmediatePropagation();
                    } else {
                        disabled = true;
                        $timeout(function () { disabled = false; }, delay, false);
                    }
                }
                //   scope.$on(‘$destroy‘, function () { iElement.off(‘click‘, onClick); });
                element.on(‘click‘, onClick);

                return original(element, attrs, transclude);
            };
            return $delegate;
        }]);
    }]);
时间: 2024-12-27 21:05:48

解决重复点击onClick事件,多次触发问题的相关文章

微信小程序使用函数防抖解决重复点击消耗性能问题

wxml: <view bindtap="doubleTap" bindtouchstart="touchStart" bindtouchend="touchEnd">click me</view> js: // 防止重复点击 touchStart(e) { this.touchStartTime = e.timeStamp; }, touchEnd(e) { this.touchEndTime = e.timeStamp

解决重复点击问题

今天优化网页时候,碰到一个重复点击的问题. var sub  = false if(sub===true){ return }else{ sub = true console.log('无法点击了') } 把这段写在前头,就可以防止连续点击,计时器出现的问题.

利用闭包解决for循环里onclick事件不能捕捉实时i值问题

问题描述 我们都知道,如果我们对于一组元素(相同的标签)同时进行onclick事件处理的时候(在需要获取到索引的时候),一般是写一个for循环,但是onclick是一个异步调用的,所以会带来一个问题,当我们触发这个事件的时候,我们能获取的i值是for完整执行完后i的值,而不能获取到代码顺序里i的值 首先看一段代码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title

Android重复点击事件处理

用户使用Android应用的时候,会出现多次快速点击同一按钮的情况,可能会造成多余网络请求,处理方法如下: public class Util { //两次点击事件时间间隔少于1s,则认为是重复点击 private static long lastClickTime; public static boolean isFastDoubleClick() { long time = System.currentTimeMillis(); long timeD = time - lastClickTi

前端的事件冒泡(例如点击一次onclick事件执行两次)解决办法

问题概要: 当我运用antd 中 radio组件的时候发现radio组件是有bug的 就是你不能给他赋予id 和 value,同时也绑定不上onclick等事件.举个例子: 可以看到 你就算赋予了id 和value 前端页面渲染也是不正常的 value无论赋成什么 结果都是on但是我还需要对他进行一些操作需要绑定他的onclick事件 所以我得解决办法就是在radio标签外套了一层div 绑定了id属性,同时将onclick事件绑定在这层div上.当我们触发它时,通过jQuery的子选择器找到内

JS解决重复绑定问题以及获取事件

1.一些数据交互元素如button 为了避免重复提交信息,可以在$.post或$.get后unbind,在收到返回后再重新绑定:或者将button设置为disabled 2.在ajax可能改变某些参数,同事参数需要在bind时赋值的,在参数变动后需要unbind再重新bind 3.某个元素的click行为是动态绑定的,将会有可能出现重复的绑定,点击一次元素将会触发两次绑定:因此动态绑定的方法需要在绑定时提前解除绑定: 4.使用jQuery的off('click')或者unbind('click'

iOS小技巧--用runtime 解决UIButton 重复点击问题

iOS小技巧–用runtime 解决UIButton 重复点击问题 什么是这个问题 我们的按钮是点击一次响应一次, 即使频繁的点击也不会出问题, 可是某些场景下还偏偏就是会出问题. 通常是如何解决 我们通常会在按钮点击的时候设置这个按钮不可点击. 等待0.xS的延时后,在设置回来; 或者在操作结束的时候设置可以点击. - (IBAction)clickBtn1:(UIbutton *)sender { sender.enabled = NO; doSomething sender.enabled

iOS小技巧–用runtime 解决UIButton 重复点击问题

什么是这个问题 我们的按钮是点击一次响应一次, 即使频繁的点击也不会出问题, 可是某些场景下还偏偏就是会出问题. 通常是如何解决 我们通常会在按钮点击的时候设置这个按钮不可点击. 等待0.xS的延时后,在设置回来; 或者在操作结束的时候设置可以点击. - (IBAction)clickBtn1:(UIbutton *)sender { sender.enabled = NO; doSomething sender.enabled = YES; } 如果涉及到按钮不同状态不同样式的时候, 用ena

【转】ASP.NET的OnClientClick与OnClick事件【解决了“识别用户在对话框里面选yes或no的问题”】

OnClientClick是客户端事件方法.一般采用JavaScript来进行处理.也就是直接在IE端运行.一点击就运行. OnClick事件是服务器端事件处理方法,在服务器端,也就是IIS中运行.点击按钮后,执行postback,再运行. 如果一个按钮上我们同时有客户端的OnClientClick方法又有OnClick事件处理方法,如何才能按照正常的逻辑运行呢? OnClientClick中我们常用来做一些客户端的检测.当然放在服务器也可以做同样的检测,但这样做的代价是与服务器进行交互,消耗资