zoukankan      html  css  js  c++  java
  • 移除jQuery绑定的click历史事件

    事件原由:

     
    function promptImage(obj,callback){
      console.log(obj.a)
      $('#showImage').modal({backdrop:false}).on('hidden.bs.modal', function (e) {
        $('#showImage').modal('hide')
      })
          .find('.submit').click(function(event){
            $("#showImage").modal('hide')
            
            var imgs = $("#showImage .up-thumbnail img")
            callback({
              url:imgs.attr('src')
            })
            //解除历史绑定的 CLICK BUG
            //$(this).unbind('click')
      })
    }
    function clicks(){
    var i = 0;
    promptImage({a:i},function(res){
        i++
        console.log("i="+i)
      //do
      })
    }
     
    clicks()
    当多次调用这个事件之后,你会发现这个 i 一直在增加 并没有被清除!

    移除事件
    unbind(type [,data])     //data是要移除的函数
    $(‘#btn’).unbind(“click”); //移除click
    $(‘#btn’).unbind(); //移除所有
    对于只需要触发一次的,随后就要立即解除绑定的情况,用one()
    $(‘#btn’).one(“click”,function(){…….});
    模拟操作
    可以用trigger()方法完成模拟操作。
    $(‘#btn’).trigger(“click”);
    $(‘#btn’).click();
    触发自定义事件
    $(‘#btn’).bind(“myclick”,function(){….});
    $(‘#btn’).trigger(“myclick”);
    传递数据
    trigger(type [,data])
    $(‘#btn’).bind(“myclick”,function(event,message1,message2){………..});
    $(‘#btn’).trigger(“myclick”,[“传给message1″,”传给message2”]);
    执行默认操作
    $(“input”).trigger(“focus”);
    //不仅会触发input元素绑定的focus事件,还会触发默认操作——得到焦点。
    $(“input”).triggerHandler(“focus”);
    //只触发绑定事件,不执行浏览器默认操作
    其他用法
    绑定多个事件类型
    $(“div”).bind(“mouseover mouseout”,function(){…..});
    添加事件命名空间
    $(“div”).bind(“click.plugin”,function(){……});
    在所绑定的世界类型后面添加命名空间,这样在删除事件时只需要指定命名空间即可。
    $(“div”).unbind(“.plugin”);   //删除空间内的事件
    $(“div”).trigger(“click!”); //触发所以不包含在命名空间中的click方法
    如果包含在命名空间的也要触发:
    $(“div”).trigger(“click”);
    部分转自:http://www.cnblogs.com/zhangq723/archive/2011/04/02/2003358.html

  • 相关阅读:
    『C#基础』C#读写TXT文档
    『ExtJS』给 Panel Items 中的 Grid 更新数据
    『Spring.NET』常见错误整理(持续更新)
    『WPF』Timer的使用
    『WPF』使用 [Annotation] 注释来定制数据/实体类
    『WPF』DataGrid的使用
    vbs修改注册表
    利用C#重启远程计算机
    sql server2000创建表和修改表
    存储过程得到某个表的所有字段信息
  • 原文地址:https://www.cnblogs.com/zhaoleilei/p/6656562.html
Copyright © 2011-2022 走看看