关于Jquery中的事件绑定总结


Posted in Javascript onOctober 26, 2016

前言

因为项目中经常会有利用jquery操作dom元素的增删操作,所以会涉及到dom元素的绑定事件方式,简单的归纳一下bind,live,delegate,on的区别,以便以后查阅,也希望该文章日后能帮助到朋友,如有不妥之处,希望指出、交流。

一.bind()

简要描述

bind()向匹配元素添加一个或多个事件处理器。

使用方式

$(selector).bind(event,data,function)

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:必需;当绑定事件发生时,需要执行的函数;

适用Jquery版本

适用所有版本,但是根据官网解释,自从jquery1.7版本以后bind()函数推荐用on()来代替。

二.Live()

简要描述

live() 向当前或未来的匹配元素添加一个或多个事件处理器;

使用方式

$(selector).live(event,data,function)

event:必需项;添加到元素的一个或多个事件,例如 click,dblclick等;

单事件处理:例如 $(selector).live("click",data,function);

多事件处理:1.利用空格分隔多事件,例如 $(selector).live("click dbclick mouseout",data,function);

2.利用大括号灵活定义多事件,例如 $(selector).live({event1:function, event2:function, ...}) 

3.空格相隔方式:绑定较为死板,不能给事件单独绑定函数,适合处理多个事件调用同一函数情况;

大括号替代方式:绑定较为灵活,可以给事件单独绑定函数;  

data:可选;需要传递的参数;

function:必需;当绑定事件发生时,需要执行的函数;

适用Jquery版本

jquery1.9版本以下支持,jquery1.9及其以上版本删除了此方法,jquery1.9以上版本用on()方法来代替。

三.delegate()

简要描述

delegate() 为指定的元素(被选元素的子元素)添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 delegate() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

使用方式 

$(selector).delegate(childSelector,event,data,function)

childSelector: 必需项;需要添加事件处理程序的元素,一般为selector的子元素;

event:必需项;添加到元素的一个或多个事件,例如 click,dblclick等;

单事件处理:例如 $(selector).delegate(childselector,"click",data,function);

多事件处理:1.利用空格分隔多事件,例如 $(selector).delegate(childselector,"click dbclick mouseout",data,function);

2.利用大括号灵活定义多事件,例如 $(selector).delegate(childselector,{event1:function, event2:function, ...}) 

3.空格相隔方式:绑定较为死板,不能给事件单独绑定函数,适合处理多个事件调用同一函数情况;

大括号替代方式:绑定较为灵活,可以给事件单独绑定函数;  

data:可选;需要传递的参数;

function:必需;当绑定事件发生时,需要执行的函数;

适用Jquery版本

jquery1.4.2及其以上版本;

四.on()

简要描述

on() 为指定的元素,添加一个或多个事件处理程序,并规定当这些事件发生时运行的函数。使用 on() 方法的事件处理程序适用于当前或未来的元素(比如由脚本创建的新元素)。

使用方式 

$(selector).on(event,childselector,data,function)

event:必需项;添加到元素的一个或多个事件,例如 click,dblclick等;

单事件处理:例如 $(selector).on("click",childselector,data,function);

多事件处理:1.利用空格分隔多事件,例如 $(selector).on("click dbclick mouseout",childseletor,data,function);

2.利用大括号灵活定义多事件,例如 $(selector).on({event1:function, event2:function, ...},childselector); 

3.空格相隔方式:绑定较为死板,不能给事件单独绑定函数,适合处理多个事件调用同一函数情况;

大括号替代方式:绑定较为灵活,可以给事件单独绑定函数; 

childSelector: 可选;需要添加事件处理程序的元素,一般为selector的子元素; 

data:可选;需要传递的参数;

function:必需;当绑定事件发生时,需要执行的函数;

适用Jquery版本

jquery1.7及其以上版本;jquery1.7版本出现之后用于替代bind(),live()绑定事件方式;

五.四种方式的异同和优缺点

相同点:

1.都支持单元素多事件的绑定;空格相隔方式或者大括号替代方式;

2.均是通过事件冒泡方式,将事件传递到document进行事件的响应;

六.比较和联系:

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()来代替,以上仅为个人看法,如有不同想法,欢迎交流。

以上就是小编为大家带来的关于Jquery中的事件绑定总结全部内容了,希望大家多多支持三水点靠木~

Javascript 相关文章推荐
jquery中的常用事件bind、hover、toggle等示例介绍
Jul 21 Javascript
jquery实现焦点图片随机切换效果的方法
Mar 12 Javascript
纯javascript响应式树形菜单效果
Nov 10 Javascript
基于jQuery实现仿QQ空间送礼物功能代码
May 24 Javascript
JS实现刷新父页面不弹出提示框的方法
Jun 22 Javascript
浅谈js构造函数的方法与原型prototype
Jul 04 Javascript
100行代码理解和分析vue2.0响应式架构
Mar 09 Javascript
jQuery正则验证注册页面经典实例
Jun 10 jQuery
vue.js移动端app实战1:初始配置详解
Jul 24 Javascript
Vue-Cli项目优化操作的实现
Oct 27 Javascript
如何在vue项目中嵌入jsp页面的方法(2种)
Feb 06 Javascript
JS面向对象编程基础篇(一) 对象和构造函数实例详解
Mar 03 Javascript
IE8利用自带的setCapture和releaseCapture解决iframe的拖拽事件方法
Oct 25 #Javascript
理解JavaScript原型链
Oct 25 #Javascript
Ztree新增角色和编辑角色回显问题的解决
Oct 25 #Javascript
jQuery+json实现动态创建复杂表格table的方法
Oct 25 #Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
Oct 25 #Javascript
JavaScript prototype属性详解
Oct 25 #Javascript
对Angular.js Controller如何进行单元测试
Oct 25 #Javascript
You might like
PHP获取文件绝对路径的代码(上一级目录)
2011/05/29 PHP
php中的常用魔术方法总结
2013/08/02 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
js 鼠标点击事件及其它捕获
2009/06/04 Javascript
JavaScript Eval 函数使用
2010/03/23 Javascript
js切换光标示例代码
2013/10/10 Javascript
JS简单的图片放大缩小的两种方法
2013/11/11 Javascript
ListBox实现上移,下移,左移,右移的简单实例
2014/02/13 Javascript
javascript常用的方法整理
2015/08/20 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
jquery 抽奖小程序实现代码
2016/10/12 Javascript
js实现点击每个li节点,都弹出其文本值及修改
2016/12/15 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
Python输出9*9乘法表的方法
2015/05/25 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
python实现顺时针打印矩阵
2019/03/02 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
Selenium向iframe富文本框输入内容过程图解
2020/04/10 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
美国在线健康和美容市场:Pharmapacks
2018/12/05 全球购物
Pretty You London官网:英国拖鞋和睡衣品牌
2019/05/08 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
大学生军训自我评价分享
2013/11/09 职场文书
材料专业毕业生求职信
2014/02/26 职场文书
婚前协议书
2014/04/15 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
python-opencv 中值滤波{cv2.medianBlur(src, ksize)}的用法
2021/06/05 Python