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

  • 相关阅读:
    Vue Highcharts 动态添加点
    JS Data(日期)对象
    VUE axios使用
    VUE 创建新项目
    Arduino ESP32 WiFi功能
    Arduino ESP8266 ESP8266mDNS.h
    Arduino ESP8266 ESP8266WebServer.h
    博客园定制自己的皮肤
    Arduino ESP32 BLE
    hadoop的伪分布安装(低版本)
  • 原文地址:https://www.cnblogs.com/zhaoleilei/p/6656562.html
Copyright © 2011-2022 走看看