zoukankan      html  css  js  c++  java
  • jQuery unbind 某个function

    jQuery unbind 某个function

    jQuery 绑定事件

    $("#a").on('click',function(){});
    //--or
    $("#a").bind('click',function(){});
    

    对于该绑定,可以在多个地方,绑定多次,比如

    $("#a").bind('click',function(){alert(1);});
    $("#a").bind('click',function(){alert(2);});
    $("#a").bind('click',function(){alert(3);});
    $("#a").bind('click',function(){alert(4);});
    

    一旦这样,当点击之后,就会弹出1,2,3,4..依次4个框

    new Object的时候,用了bind,,那么对于同一个jquery对象,假如new多次的时候,就会绑定多个事件

    代码如下:

    var selectMore = function($obj){
       $obj.bind('change',function(){
            alert('change');
       });
    };
    
    //调用
    new selectMore($('select'));
    new selectMore($('select'));
    new selectMore($('select'));
    

    结果:第一次弹出一个,第二次弹出两个,第三次弹出三个(因为绑定了三次)

    用unbind,来解除事件,使其只执行一次

    代码如下:

    var selectMore = function($obj){
       $obj.unbind('change').bind('change',function(){
            alert('change');
       });
    };
    
    //调用
    new selectMore($('select'));
    new selectMore($('select'));
    new selectMore($('select'));
    

    成功.

    写的类要被其他人多次调用,别人也可能绑定了change事件,不能把别人写的change事件也unbind了

    用unbind('change',function)来实现,代码如下:

    var selectMore = function($obj){
       $obj.unbind('change',myFunc);//但是此时myFunc获取不到
       var myFunc = function(){
           alert('change');
       };
       $obj.bind('change',myFunc);
    };
    

    如注释所示,此时的myFunc获取不到,所以要把该myFunc保存起来

    用jQuery的data来保存数据

    代码如下:

    var selectMore = function($obj){
       if($obj.data('myFunc')){      //这里判断的原因是:假如没有的话,执行$obj.unbind('change','')..则会移除所有绑定change的方法,把别人写的也移除了.
           $obj.unbind('change',$obj.data('myFunc'));  //取得对应的myFunc,将其移除掉
       }
       var myFunc = function(){
           alert('change');
       };
       $obj.data('myFunc',myFunc); //保存数据,找到该myFunc
       $obj.bind('change',myFunc);
    };
    
     
  • 相关阅读:
    Spring 中的邮件任务
    Spring 定时任务
    java中同步交互 与 异步交互
    Springboot 版本包冲突
    Derby 配置环境变量
    Springboot中的Web服务Tomcat改为Jetty
    二叉树中和为某一值的路径
    0-Java中this和super的用法总结
    树9:二叉搜索树的后序遍历
    位运算-输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。
  • 原文地址:https://www.cnblogs.com/chenglideyueguang/p/8933658.html
Copyright © 2011-2022 走看看