jquerybind和live的区别(jquery中on()方法和live()方法的区别)

本文目录
- jquery中on()方法和live()方法的区别
- Jquery中bind和live的区别
- jQuery 为什么要划分.bind和.live
- jquery中的bind,live,delegate和on方法的区别是什么
- jQuery的.bind,live和.delegate之间的区别
jquery中on()方法和live()方法的区别
一、作用不同
1、on():在被选元素及子元素上添加一个或多个事件处理程序。
2、live():为被选元素附加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。
二、触发条件不同
1、on():使用 on() 方法添加的事件处理程序适用于当前及未来的元素(比如由脚本创建的新元素)。
2、live():通过 live() 方法附加的事件处理程序适用于匹配选择器的当前及未来的元素(比如由脚本创建的新元素)。
三、语法不同
1、on():$(selector).on(event,childSelector,data,function)childSelector可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。
2、live():$(selector).live(event,data,function),其中event必需。规定附加到元素的一个或多个事件。由空格分隔多个事件。必须是有效的事件。
Jquery中bind和live的区别
这2个方法在早期的jquery版本中比较常见,最新版本的jquery已经使用on取代了他们。区别:
1.bind是在页面加载完成之后只对DOM进行一次绑定
2.live会在每次事件冒泡过程中都会监听绑定的事件。
通俗的讲:假设我们给一个是给后期(并不是页面初始化的时候的DOM结构)加载的节点绑定方法,如果使用bind则会无效,应该使用live。不过这些区别再新版本使用on方法之后都可以不用在理了,on比二者都要高效。
jQuery 为什么要划分.bind和.live
本身两个提供的功能并不完全一样,正如文档中说的,.bind()只能对已有的元素绑定事件,而.live()能对未来插入的元素绑定事件。
从jQuery发展历史来说,.bind()是从1.0版开始就已经提供了的,这是对事件绑定提供一个统一的接口。
而后在1.3版之后,才提供了.live()。为了给事件绑定提供更多灵活性。
当然,确实有可能在未来某个版本中合并成一个,通过给bind增加一个参数,内部调用live,来完成live的功能。但目前从1.4.3里新增的那个参数来看,似乎近期内不太可能了……
jquery中的bind,live,delegate和on方法的区别是什么
$(selector).bind(event,data,function)
$(selector).live(event,data,function)//jquery1.9版本以下支持,jquery1.9及其以上版本删除了此方法,jquery1.9以上版本用on()方法来代替$(selector).delegate(childSelector,event,data,function)//jquery1.4.2及其以上版本;$(selector).on(event,childselector,data,function)//jquery1.7及其以上版本;jquery1.7版本出现之后用于替代bind(),live()绑定事件方式;
event:必需项;添加到元素的一个或多个事件,例如 click,dblclick等;
单事件处理:例如 $(selector).bind("click",data,function);
多事件处理:1.利用空格分隔多事件,例如 $(selector).bind("click dbclick mouseout",data,function);
2.利用大括号灵活定义多事件,例如 $(selector).bind({event1:function, event2:function, ...})
3.空格相隔方式:绑定较为死板,不能给事件单独绑定函数,适合处理多个事件调用同一函数情况;
大括号替代方式:绑定较为灵活,可以给事件单独绑定函数;
data:可选;需要传递的参数;
function:必需;当绑定事件发生时,需要执行的函数;适用所有版本,但是根据官网解释,自从jquery1.7版本以后bind()函数推荐用on()来代替。
jQuery的.bind,live和.delegate之间的区别
1.bind()函数只能针对已经存在的元素进行事件的设置;但是live(),on(),delegate()均支持未来新添加元素的事件设置;
2.bind()函数在jquery1.7版本以前比较受推崇,1.7版本出来之后,官方已经不推荐用bind(),替代函数为on(),这也是1.7版本新添加的函数,同样,可以用来代替live()函数,live()函数在1.9版本已经删除;
3.live()函数和delegate()函数两者类似,但是live()函数在执行速度,灵活性和CSS选择器支持方面较delegate()差些;
4.bind()支持Jquery所有版本;live()支持jquery1.8-;delegate()支持jquery1.4.2+;on()支持jquery1.7+。
结论:如果项目中引用的jquery版本为低版本,推荐用delegate(),如果是高版本jquery则建议用on()。

本文相关文章:
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
filtertec面料(filtertec和goretex哪个好)
2026年10月4日 10:10
jquerychildren第一个(jquery在向一个父div里添加子div时怎么判断是否是第一个子div)
2026年10月4日 00:30
internal friction(menbers,是什么意思)
2026年9月24日 09:50
jquery无刷新replace(jquery ajax 怎么实现无刷新改变页面的url)
2026年9月21日 06:00
webpack dev server(如何搭建webpack-dev-server)
2026年9月20日 15:10
更多文章:
在from子句中可以出现(如何在from 子句中嵌套查询下面的语句在access中出错!)
2026年10月11日 05:20
countif函数统计个数怎么用(countif函数怎么用 详解Excel中countif函数的使用方法)
2026年10月11日 03:30
正则匹配数字之前的字符(正则表达式如何匹配前面是数字、中间是“/”、后面也是数字,就像2/3专业的模式)
2026年10月11日 03:00
orlnsertbootmediinselected(我电脑开机显示这个是什么意思or insert boot media in select)
2026年10月10日 23:00
display的用法(display是什么意思 详解display的含义和用法)
2026年10月10日 22:00
html全部居中代码(怎么让网页居中显示,html如何让网页居中)
2026年10月10日 21:10



