live(),bind(),delegate()等事件绑定方法的区别及应用解析
1 首先bind()方法是最直观的,但是也是弊端最大的。
$('a').bind('click',function(){alert('that tickles!')})
这和事件冒泡有直接关系,当我们点击了<a></a>标签时,会立马执行alert,但与此同时,click()事件会接着向DOM树的根方向传播,广播到父元素,由父元素向上到每个祖先元素,只要是它的某个后代元素上的click()事件被触发,那么整个dom树都会牵一发而动全身。所以对未来元素的绑定不能用bind.
2 live()方法的应用显然比bind()好了很多,用于为指定元素的一个或多个事件绑定事件处理函数。
jQueryObject.live( events [, data ], handler )
jQueryObject.live( eventsMap )
实例:
$('a').live('click',function(){alert('That tickles!')})
2.1 其中events为string类型,一个或多个用空格分隔的事件类型的可选的命名空间;data为可选的,任意类型,作用是传递给事件处理函数的任意数据;hander指定的事件处理函数;eventMap为一个object对象,每个属性对应事件类型和可选的命名空间(event),属性值对应绑定的事件处理函数。
2.2 live()的事件处理函数全部附加到document对象上,所以事件的处理时间可能会长一些,冒泡执行使会检查对象是不是对应的事件(本例中会检查是不是click事件),更重要的是会检查该事件的目标元素是否与“a”这一css选择器匹配(当前jQuery对象必须通过选择器字符串构造,否则无法处理触发事件)。
2.3 live()方法还可以被绑定到具体的元素上(not document)
eg:
$('a',$('#container')[]).live('click',function(){alert('That tickles!')})//很useful的特点~
live()方法还有一个特点就是即使是后面创建的元素,用它绑定的事件会一直有效。
$("#jnBrangList").find(".imageMask").live("hover",function(){
$(this).toggleClass("imageOver");
});
如上例,因为“imageOver”元素是被页面加载完后动态创建的,所以如果用bind()的话是不会有效果的。
2.4撤销live(),可以匹配使用die()
3 delegate()方法为指定的元素(属于被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。该方法适用于当前或未来的元素(比如由脚本创建的新元素)。
语法为:
$(selector).delegate(childSelector,event,data,function)

这样我们可以把上面live()的实例改成:
$("#jnBrandList").delegate(".imageMask","hover",function(){
$(this).toggleClass("imageOver");
});
live(),bind(),delegate()等事件绑定方法的区别及应用解析的更多相关文章
- 原生JS事件绑定方法以及jQuery绑定事件方法bind、live、on、delegate的区别
一.原生JS事件绑定方法: 1.通过HTML属性进行事件处理函数的绑定如: <a href="#" onclick="f()"> 2.通过JavaS ...
- jQuery中的事件绑定方法
在jQuery中,事件绑定方法大致有四种:bind(),live(), delegate(),和on(). 那么在工作中应该如何选择呢?首先要了解四种方法的区别和各自的特点. 在了解这些之前,首先要知 ...
- 完美的jquery事件绑定方法on()
在讲on()方法之前,我们先讲讲在on()方法出现前的那些事件绑定方法: .live() jQuery 1.3新增的live()方法,使用方法例如以下: $("#info_table td& ...
- javascript对象事件绑定方法
javascript对象事件绑定方法 今天在做对象事件绑定的过程中出现了一点异外情况,由于事件方法是由参数传过来的,需要将当前对象call过去,方便方法体里直接调用this 错误写法 obj.oncl ...
- JS三个事件绑定方法
1. JS三个事件绑定方法 1.1. 使用html进行事件绑定 1.直接在html标签上写入事件类型和事件处理方法. <button onclick = "alert('hello w ...
- jQuery事件绑定方法bind、 live、delegate和on的区别
我们试图绑定一些事件到DOM元素上的时候,我相信上面这4个方法是最常用的.而它们之间到底有什么不同呢?在什么场合下用什么方法是最有效的呢? 1.准备知识 当我们在开始的时候,有些知识是必须具备的: 1 ...
- jQuery的4种事件绑定方法
jQuery中提供了四种绑定事件的方法,分别是bind.live.delegate.on,对应的解除监听的函数分别是unbind.die.undelegate.off: 一.on()方法(首选方法) ...
- Javascript事件模型(三):JavaScript事件绑定方法总结(及Jquery)
JavaScript中绑定事件的方法主要有三种: 1 在DOM元素中直接绑定 2 JavaScript代码中直接绑定 3 绑定事件监听函数 JQuery中绑定事件的几种方法 主要有on().bind( ...
- js事件绑定方法
最近收集了一些关于JavaScript绑定事件的方法,汇总了一下,不全面,但是,希望便于以后自己查看. JavaScript中绑定事件的方法主要有三种: 1 在DOM元素中直接绑定 2 JavaScr ...
随机推荐
- Windows 下如何设置 只允许固定IP远程访问
通过设置IP安全策略限制固定IP访问 说明: (1)以XP环境为例,步骤:先禁止所有IP,再允许固定IP访问. (2)配置过程中很多步骤图是重复的,一些没价值的图就省略了: (3)光看的话可能中间重复 ...
- 通过java发送http请求
通常的http请求都是由用户点击某个连接或者按钮来发起的,但是在一些后台的Java程序中需要发送一些get或这post请求,因为不涉及前台页面,该怎么办呢? 下面为大家提供一个Java发送http请求 ...
- UVa839 Not so Mobile
我的解法: 建树,递归判断 #include<cstdio> #include<cstring> #include<iostream> #include< ...
- Qt编程18:Qt调色板QPalette的使用
QPalette类有两个枚举类型, 枚举 1.ColorGroup CorGroup指的是3中不同的状态(什么时候设置颜色): 1>Active:获得焦点的状态. 2>Inactive:未 ...
- WPF自己定义命令Command
一.自己定义命令 自己定义命令必需要实现ICommand接口.例如以下代码所看到的: /// <summary> /// 自己定义的清除命令. 光脚丫思考 2014-7-31 06:51: ...
- 三分钟掌握 JUnit3.0
曾经公司做过一个.net的项目,在项目开发的过程中.我们採用的是分层的开发方式,大家先在一起讨论接口, 然后讨论完以后,形成文档,然后依照文档进行开发!这样就有一个问题,你必需要保证你的接口是正确的. ...
- ShareSDK for iOS 2.9.0已经公布
ShareSDK for iOS v2.9.0已经公布,本次更新内容包含: 1.修复Facebook获取用户信息报错问题 2.修复Instagram在iPad上显示分享菜单错误问题,须要指定菜单容器. ...
- sql操作事务SqlTransHelper类实现
具体实现代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...
- 项目源码--Android本地音乐播放器
下载源码 技术要点: 1.本地音乐播放与管理 2.支持在线下载 3.非库音频流的解码 4. UI控件的综合使用 5. HTTP通信模块 6. Mysql数据库的综合使用 7. 后台服务技术 8. 源码 ...
- mysql导入数据库
mysql -u root -p bbs < d:\bbs_2011-06-15 --default-character-set=gbk mysqldump -uroot -p ta ...