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;
    	});
    
  • 相关阅读:
    通用的web系统数据导出功能设计实现(导出excel2003/2007 word pdf zip等)
    DALSA Coreco
    环境变量之执行文件路径的变量PATH
    命令与文件的查询
    软件开发工具GCC
    权限与命令之间的关系
    Linux防火墙
    网络管理
    分区及格式化
    VMware Workstation的网络连接方式:NAT、桥接和Host Only
  • 原文地址:https://www.cnblogs.com/gao123t/p/7872161.html
Copyright © 2011-2022 走看看