jquery 事件 多次绑定,多次触发,怎么清除历史绑定事件

Jquery在处理事件的时候有时候会遇到预想不到的结果

如下

<a id="link_foo">Foo</a>
<script type="text/javascript">
    function bindFooClick(){
      $("#link_foo").click(function(){
        console.log("www.vincentguo.cn");
      });
    }
    bindFooClick();
    bindFooClick();
    bindFooClick();
    bindFooClick();
</script>

然后去点击 Foo 这个连接,将会出现4个日志输出

如果不小心这个事件绑定被搞得成倍增长了,那就等着暴掉吧。

所以需要在 bindFooClick 绑定事件前去掉之前的绑定

function bindFooClick(){
      $("#link_foo").unbind("click").click(function(){
        console.log("www.vincentguo.cn");
      });
}

原文地址:jquery 事件 多次绑定,多次触发,怎么清除历史绑定事件
标签:jquery   click   重复   重叠   多次

智能推荐

  • MYSQL 命令行显示乱码 解决方案
  • In MySQL, a zero number equals any string
  • 【Git 使用笔记】第二部分:基本命令 和 单分支开发
  • 【大学四年】怀念那四年的岁月
  • 估值十亿美元、1.5亿用户,公司CEO却跑路了
时间: 2024-08-01 23:34:54

jquery 事件 多次绑定,多次触发,怎么清除历史绑定事件的相关文章

jQuery绑定以及解除时间方法总结,以及事件触发的方法

 一   off()和on()          $("obj").on(event,[sesect],[data],fn);一般情况下参数只有两个,事件以及事件的处理函数          off() 方法移除用.on()绑定的事件处理程序,如$("p").off("click","");   二  die()和live()        $("obj").live(type,[date],fn),$(&

219 jQuery事件处理: off() 解绑事件,trigger() 、triggerHandler() 自动触发事件

? 当某个事件上面的逻辑,在特定需求下不需要的时候,可以把该事件上的逻辑移除,这个过程我们称为事件解绑.jQuery 为我们提供 了多种事件解绑方法:die() / undelegate() / off() 等,甚至还有只触发一次的事件绑定方法 one(),在这里我们重点讲解一下 off() ; 语法 演示代码 <body> <div></div> <ul> <li>我们都是好孩子</li> <li>我们都是好孩子<

jquery:iframe里面的元素怎样触发父窗口元素的事件?

例如父窗口定义了一个事件. top: $(dom1).bind('topEvent', function(){}); 那么iframe里面的元素怎样触发父窗口dom1的事件呢?这样吗? $(dom1, parent.document).trigger('topEvent'); 看似正确,实则误导人. 因为父窗口的jquery对象与iframe里面的jquery对象实际为两个对象(function),iframe里面的jquery并不会触发另一个jquery对象定义的事件.除非你在iframe这样

jquery嵌套后会触发2次点击事件, jquery的unbind就是卸载这个点击事件的.

$("#diva").click(function(){ $("#divb").unbind("click").click(function(){ alert("www.lao8.org 提供代码."); }); }); jquery嵌套后会触发2次点击事件, jquery的unbind就是卸载这个点击事件的.

2015-07-23 JQuery第三课(JQuery元素:获取、添加、删除、设置、绑定、显示隐藏、回调函数、动画)

1.获取内容: text():获取文本内容.text获取的是文本内容,假设被指定的<div>里面还有各种标签,text也只获取里面的纯文本内容. html():获取括号内内容.而html则是获取里面的全部内容,包括标签也会一起打印出来. [例] $(“#d1”).text(“aaaaa”); //打印出 aaaaa $(“#d1”).html(“<div>aaaa</div>”); //打印出<div>aaaa</div> 2.添加元素: $(A

以input=file方式,获取文件时,在IE下8无法通过某个按钮click事件间接触发input=file的change事件

最近在项目中遇到了许多上传问题,公司内部的组件,通过form上传,需要使用input=file触发选择文件, 因为input=file在各个浏览器中显示的样式是不同的,谷歌,火狐,IE都有所不同,而且不太美观,所以为了解决 这一个问题,一开始采用了隐藏input=file 然后通过一个显示的button间接触发input=file的click事件如下 <input type="file" id="upload" style="display:none

如何用按钮的click事件去触发a标签的click事件

在jQquery中,可以用如下方式触发input.a标签的click事件: <input id="my_input" /> <a id="my_a" href="http://www.XXXX.html"></a> $("#my_input").click(function () { //do something }); 或 $("#my_a").click(functi

解决内部元素onMouseOver/onMouseOut事件冒泡触发父元素的相应事件

前阵子为BS项目模板做了一个左侧滑动信息栏,效果类似于windows状态栏的自动隐藏效果,鼠标移进滑出,鼠标移出隐藏,浮动时不占用空间,也可以固定住占一块位置.做的过程中遇到一个问题,鼠标在信息栏内部移动时会触发onMouseOut事件,信息栏放在div中,内部有table.img.a等元素,看来是由于事件冒泡,子元素上触发了事件冒泡到了父元素,导致滑动时不断闪动,头晕眼花,于是着手解决问题. 方法一: 在IE下解决问题很简单,用onMouseEnter.onMouseLeave来代替onMou

11月8日上午Jquery的基础语法、选取元素、操作元素、加事件、挂事件及移除事件

jquery基础知识 1.jquery文件的引入,所有的js代码要写在下面那段代码下面. <script src="../jquery-1.11.2.min.js"></script><!--引入的jquery一定是在最上面的,也要在其它引入的jquery文件上面--> 2.写jquery代码的位置 和js一样,jquery代码也是写在<script>开始和结束标签之间. <script type="text/javasc