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

  • 相关阅读:
    【遇见时光】笔试-偶数最大距离-java
    【遇见时光】笔试-下蹲-java实现
    [遇见时光]内推笔试-藏宝图-java实现
    【遇见时光】内推编程-洗牌
    [遇见时光]剑指offer-顺时针打印矩阵java
    [遇见时光]解决‘javac’不是内部或外部命令的问题
    [遇见时光]Java多线程
    Android Studio 打包错误
    android 开发不常用技巧集
    异步任务结束操作,对于ativity fragment SharedPreferences等涉及到context操作前的判断
  • 原文地址:https://www.cnblogs.com/zhaoleilei/p/6656562.html
Copyright © 2011-2022 走看看