有时候事件执行完了,想取消事件的效果可以通过一定的办法来处理。比如bind()(绑定事件)和unbind()(移除通过bind()方法添加的事件)方法来移除事件的效果。
比如下面的一个案例:
<script type="text/javascript"> $(function(){ $('#btn').bind("click", function(){ $('#test').append("<p>绑定函数1</p>"); }).bind("click", function(){ $('#test').append("<p>绑定函数2</p>"); }).bind("click", function(){ $('#test').append("<p>绑定函数3</p>"); }); }) </script>
html部分:
<body> <button id="btn">Click Me</button> <div id="test"></div> </body>
当点击按钮btn时,触发了三个点击事件,这里的append()方法,向div层中传递了三个段落内容。
append() 方法在被选元素的结尾(仍然在内部)追加指定内容。它与html()方法还是不同的,html()方法是改变整个元素中的内容,而不是向元素结尾追加内容。text()方法与html()方法类似,但区别在于html()方法中可以写入html的代码,而且可以被正确的解析,而text()只能当html代码为正常的字符串。
这里每次点击,都会执行一次事件,想div层末尾添加段落。下面的代码是取消事件效果的,可以通过删除事件,使点击效果失效:
<script type="text/javascript"> $(function(){ $('#btn').bind("click", function(){ $('#test').append("<p>绑定函数1</p>"); }).bind("click", function(){ $('#test').append("<p>绑定函数2</p>"); }).bind("click", function(){ $('#test').append("<p>绑定函数3</p>"); }); $('#delAll').click(function(){ $('#btn').unbind("click"); }); }) </script>
$('#btn').unbind("click");这句代码的作用就是取消元素btn下的click事件。它不仅仅对于bind()方法有效,它对于click()方法同样有效。从某种角度上讲,bind("click",function(){})与click(function(){})是等价的。
还可以针对具体的方法,删除特定的事件。下面的代码可以参考:
<script type="text/javascript"> $(function(){ $('#btn').bind("click", myFun1 = function(){ $('#test').append("<p>绑定函数1</p>"); }).bind("click", myFun2 = function(){ $('#test').append("<p>绑定函数2</p>"); }).bind("click", myFun3 = function(){ $('#test').append("<p>绑定函数3</p>"); }); $('#delTwo').click(function(){ $('#btn').unbind("click",myFun2); }); }) </script>
unbind()方法的第二个参数是事件对应得执行函数的名字,这样执行完后,只有myFun2这个事件被删除了,其他两个click事件正常执行。
还有一种跟bind()方法类似的方法one(),区别大概就是one()方法只执行一次。为每一个匹配元素的特定事件(像click)绑定一个一次性的事件处理函数。代码如下:
<script type="text/javascript"> $(function(){ $('#btn').one("click", function(){ $('#test').append("<p>绑定函数1</p>"); }).one("click", function(){ $('#test').append("<p>绑定函数2</p>"); }).one("click", function(){ $('#test').append("<p>绑定函数3</p>"); }); }) </script>
点击后,只执行一次。再次点击不会触发效果。这就是one方法。
以上所述就是本文的全部内容了,希望本文能够使大家更好的理解jQuery的绑定事件和移除事件,
本文向大家介绍浅谈jQuery的bind和unbind事件(绑定和解绑事件),包括了浅谈jQuery的bind和unbind事件(绑定和解绑事件)的使用技巧和注意事项,需要的朋友参考一下 绑定其实就是把一些常规时间绑定到页面,然后进行各种常规操作 解绑就是接触绑定,绑定的事件失效 要注意,iQuery中的 .事件 如(.click())其实就是单个的绑定事件的简写(bind("click"))
本文向大家介绍浅谈jquery之on()绑定事件和off()解除绑定事件,包括了浅谈jquery之on()绑定事件和off()解除绑定事件的使用技巧和注意事项,需要的朋友参考一下 off()函数用于移除元素上绑定的一个或多个事件的事件处理函数。 off()函数主要用于解除由on()函数绑定的事件处理函数。 该函数属于jQuery对象(实例)。 语法 jQuery 1.7 新增该函数。其主要有以下两
本文向大家介绍js绑定事件和解绑事件,包括了js绑定事件和解绑事件的使用技巧和注意事项,需要的朋友参考一下 在js中绑定多个事件用到的是两个方法:attachEvent和addEventListener,但是这两个方法又存在差异性 attachEvent方法 只支持IE678,不兼容其他浏览器 addEventListener方法 兼容火狐谷歌,不兼容IE8及以下 addEventListe
本文向大家介绍jQuery unbind 删除绑定事件详解,包括了jQuery unbind 删除绑定事件详解的使用技巧和注意事项,需要的朋友参考一下 unbind([type],[data]) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件。如果没有参数,则删除所有绑定的事件。你可以将你用bind()注册的自定义事件取消绑定。如果提供了事件类型作为参数,则只删除该类型的绑定事件。
本文向大家介绍详谈jQuery unbind 删除绑定事件 / 移除标签方法,包括了详谈jQuery unbind 删除绑定事件 / 移除标签方法的使用技巧和注意事项,需要的朋友参考一下 jQuery unbind 删除绑定事件 unbind([type],[data]) 是 bind()的反向操作,从每一个匹配的元素中删除绑定的事件。如果没有参数,则删除所有绑定的事件。你可以将你用bind()注
本文向大家介绍jQuery事件绑定on()、bind()与delegate() 方法详解,包括了jQuery事件绑定on()、bind()与delegate() 方法详解的使用技巧和注意事项,需要的朋友参考一下 啃了一段日子的js相关了,学的过程中发现在jQuery中绑定事件时,有人用bind(),有人用on(),有人用delegate(),还有人用live(),看代码的时候觉得都实现功能了也就掀