zoukankan      html  css  js  c++  java
  • js之绑定到div上面的事件如何取消

    场景:最常见的一种场景就是按钮点击。如果按钮点击之后要发生变化的话。会由可点变为不可点。

    思路:

    一、首先会想到如果把绑定事件的class remove掉的话,是不是可以。
    二、可以查看是否可以禁用点击事件实现。
    三、可以添加一个class。在另外的class上面阻止其他点击事件。
    即return false。

    思路一实现:

    //写法一:
    $("body").on('click',".J_toShake", function (e) {
    	$(this).addClass("gray").removeClass("J_toShake").html("已摇奖");
    });
    
    //写法二:
    $(".J_toShake").on('click',function (e) {
    	$(this).addClass("gray").removeClass("J_toShake").html("已摇奖");
    });
    //写法三:
    $("body .J_toShake").on('click',function (e) {
    	$(this).addClass("gray").removeClass("J_toShake").html("已摇奖");
    });
    

    写法一可用。写法二、三不可用。
    原因分析:
    直接绑定元素上面。会在缓存中存住这个事件元素。如果后期想去掉元素上面的事件。如果是直接删除id或者是class是不能实现的。
    然而如果是绑定到body的话。后期捕获到元素上面的话就是可以的。

    思路二实现:

    	var clicked=false;
    	// 点击去摇奖
    	$(".J_toShake").on('click',function (e) {
    		if(clicked){
                             //移除指定的事件函数
    			//$(this).off(e);
                            //移除click事件处理程序
                            //$(this).off("click");
    
    			return;
    		}
    		$(this).addClass("gray").removeClass("J_toShake").html("已摇奖");
    		clicked=true;
    	});
    

    思路三实现:

    	var clicked=false;
    	// 点击去摇奖
    	$(".J_toShake").on('click',function (e) {
    		if(clicked){
                             //移除指定的事件函数
    			//$(this).off(e);
                            //移除click事件处理程序
                            //$(this).off("click");
    
    			return;
    		}
    		$(this).addClass("gray").removeClass("J_toShake").html("已摇奖");
    		clicked=true;
    	});
    
  • 相关阅读:
    非阻塞式NIO 小案例(模拟聊天室)
    网络通信小案例,服务端接收成功要给客户端一个反馈(阻塞式)
    阻塞式网络通信小案例:
    NIO的非阻塞式网络通信
    字符编码
    使用分散(Scatter)与聚集(Gather)来实现文件的复制
    使用通道之间的数据传输(效果,也是实现文件的复制)
    创建直接缓存区完成文件的复制
    C++预处理详解
    C++的学习资源
  • 原文地址:https://www.cnblogs.com/gao123t/p/7872161.html
Copyright © 2011-2022 走看看