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;
    	});
    
  • 相关阅读:
    html5 to jsp
    java通过springMail发送邮件
    solr配置-Solrconfig.xml
    solr配置-Schema.xml
    solr连接数据库导入数据
    log4j 1.2 配置总结
    1-12 ARP协议
    1-11 ICMP协议
    1-10 网际层
    1-9 TCP/IP参考模型
  • 原文地址:https://www.cnblogs.com/gao123t/p/7872161.html
Copyright © 2011-2022 走看看