jQuery之事件移除
当事件执行完了,想取消事件的效果可以通过一定的办法来处理。比如bind()方法,可以通过unbind()方法来移除事件的效果。
比如下面的一个案例:
- <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">点击我</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 绑定事件及移除绑定事件方法和元素事件列表
1.jQuery Event 事件: ready(fn); $(document).ready()注意在body中没有onload事件,否则该函数不能执行.在每个页面中可以有很多个函数被加载 ...
- jQuery live事件说明及移除live事件方法
1.live事件说明 jQuery1.3增加了一个live()方法,下面是手册上的说明: jQuery 1.3中新增的方法.给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件).也 ...
- 深入学习jQuery鼠标事件
× 目录 [1]类型 [2]写法 [3]合成事件[4]鼠标按键[5]修改键[6]坐标位置 前面的话 鼠标事件是DOM事件中最常用的事件,jQuery对鼠标事件进行了封装和扩展.本文将详细介绍jQuer ...
- jquery的事件命名空间详解
jquery现在的事件API:on,off,trigger支持带命名空间的事件,当事件有了命名空间,就可以有效地管理同一事件的不同监听器,在定义组件的时候,能够避免同一元素应用到不同组件时,同一事件类 ...
- jquery双击事件
<html> <head><meta http-equiv="Content-Type" content="text/html; chars ...
- 第4章 jQuery的事件和动画(1)——事件篇
jQuery扩展了JavaScript的基本事件处理机制,极大增强了事件处理能力 一. jQuery的事件 1. $(document).ready(function(){})加载方式 再次回到win ...
- [转]使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 事件详解
在前文<使用 jQuery Mobile 与 HTML5 开发 Web App —— jQuery Mobile 默认配置与事件基础>中,Kayo 对 jQuery Mobile 事件的基 ...
- jQuery之事件even
jQuery之事件 W3C:http://www.w3school.com.cn/jquery/jquery_ref_events.asp 一.事件列表 1.blur() 当失去焦点时触发 ...
- jQuery学习-事件之绑定事件(一)
我们都知道jQuery的事件其思想来源于Dean Edwards的addEvent,通过源码我们知道jQuery在为元素绑定事件时,每种类型的事件(click,blur)时只绑定了一次对应类型的事件处 ...
随机推荐
- PAT (Advanced Level) 1101. Quick Sort (25)
树状数组+离散化 #include<cstdio> #include<cstring> #include<cmath> #include<map> #i ...
- 使用Retrofit和RxJava
使用Retrofit和RxJava整合访问网络,然后将数据显示到界面上 def retrofitVersion = '2.0.0-beta1' dependencies { compile fileT ...
- Linux批量替换文本,文件夹内所有文本内容
1.替换文件夹内所有文件匹配的字符串 sed -i "s/旧内容/新内容/g" `grep 旧内容 -rl 文件夹路径` 例如将/var/www/test文件夹下的所有文件内容中的 ...
- ibatis中resultClass与resultMap 的区别
ibatis的resultClass与resultMap还是有很大的区别.以下是我碰到的一个问题. 配置文件写法如下: 1 sqlMap2 typeAlias alias="notice&q ...
- 核心动画 CAAnimation 进阶
转载自:http://www.cofcool.net/development/2015/06/20/ios-study-note-nine-CoreAnimation/ Core Animation, ...
- u-boot添加一个hello命令
1.在common目录下建立一个cmd_hello.c文件 2.仿照/common/cmd_bootm.c文件修改,把cmd_bootm.c头文件复制过来 3.再复制do_bootm.U_BOOT_C ...
- docker 镜像仓库 Harbor 部署 以及 跨数据复制
docker 镜像仓库 Harbor 部署 跨数据复制 Harbor 是 Vmwar 公司开源的 企业级的 Docker Registry 管理项目 它主要 提供 Dcoker Registry 管理 ...
- decimal 和 numeric (Transact-SQL)
decimal(18,0)18是定点精度,0是小数位数.decimal(a,b)a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38.b指定小数点右边可以存储的十进制数字的最大个数. ...
- 写一个程序,统计自己C语言共写了多少行代码,Github基本操作
前言 在上一篇博客中,本人提到了自己的文件操作可以说是几乎没用过.现在想想,这也算是只在OJ上做题的一个弊端吧.虽然通过OJ做题是一个学习代码好手段,但其他方面也要多多涉猎才好,而不是说OJ用不到文件 ...
- Python多进程并发(multiprocessing)用法实例详解
http://www.jb51.net/article/67116.htm 本文实例讲述了Python多进程并发(multiprocessing)用法.分享给大家供大家参考.具体分析如下: 由于Pyt ...