jquery绑定事件 bind和on的用法与区别分析


Posted in jQuery onMay 22, 2020

本文实例讲述了jquery绑定事件 bind和on的用法与区别。分享给大家供大家参考,具体如下:

bind和on都是给元素绑定事件用的,其最大的区别就是事件冒泡

事件冒泡也是委托事件的原型,事件委托就是子类的事情委托给父类的去做

最直观的区别就是on绑定比bind绑定多一个参数'childSelector'

语法

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

参数 描述
event 必需。规定要从被选元素移除的一个或多个事件或命名空间。 由空格分隔多个事件值,也可以是数组。必须是有效的事件。
childSelector 可选。规定只能添加到指定的子元素上的事件处理程序(且不是选择器本身,比如已废弃的 delegate() 方法)。
data 可选。规定传递到函数的额外数据。
function 可选。规定当事件发生时运行的函数。

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

参数 描述
event 必需。规定添加到元素的一个或多个事件。 由空格分隔多个事件值。必须是有效的事件。
data 可选。规定传递到函数的额外数据。
function 必需。规定当事件发生时运行的函数。
map 规定事件映射 ({event:function, event:function, ...}),包含要添加到元素的一个或多个事件,以及当事件发生时运行的函数。
  • bind只能给符合条件的元素本身添加事件
  • on可以将子元素的事件委托给父元素进行处理,而且可以给动态添加的元素加上绑定事件

也就是对于新添加的元素如果是on绑定,符合条件的新元素也会绑定事件,

如果是bind则不影响新元素

比如下例:

<ul>
  <li>第一个子元素<li/>
  <li>第二个子元素<li/>
  <li>第三个子元素<li/>
</ul>

我们想给所有li添加click事件,可以用on:

$('ul').on('click','li', function () {
    console.log($(this).text());
});

也可以用bind:

$('ul li').bind('click', function () {
    console.log($(this).text());
});

有什么区别呢?

第一用on绑定实际上是委托给了父级ul,也就是只给 一个元素绑定了事件

第二个是用选择器选择了ul下的所有li元素 依次绑定了事件

假如有很多很多子元素区别就很大了, bind会严重影响性能!

假如这时候新添一个li:

$('ul').append('<li>第四个子元素<li>');
  • 如果是on绑定则这个li也会有点击事件
  • 如果是bind则没有

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

希望本文所述对大家jQuery程序设计有所帮助。

jQuery 相关文章推荐
jQuery列表检索功能实现代码
Jul 17 jQuery
jQuery 防止相同的事件快速重复触发方法
Feb 08 jQuery
jquery 实现拖动文件上传加载进度条功能
Mar 18 jQuery
jQuery+Cookie实现切换皮肤功能【附源码下载】
Mar 25 jQuery
jQuery简单判断值是否存在于数组中的方法示例
Apr 17 jQuery
jQuery实现获取选中复选框的值实例详解
Jun 28 jQuery
jQuery.extend 与 jQuery.fn.extend的用法及区别实例分析
Jul 25 jQuery
jQuery模拟12306城市选择框功能简单实现方法示例
Aug 13 jQuery
jQuery实现的简单歌词滚动功能示例
Jan 07 jQuery
jQuery实现的图片点击放大缩小功能案例
Jan 02 jQuery
jQuery实现鼠标移入显示蒙版效果
Jan 11 jQuery
jQuery实现B2B网站后台管理系统侧导航
Jul 08 jQuery
jQuery实现移动端笔触canvas电子签名
May 21 #jQuery
jQuery HTML获取内容和属性操作实例分析
May 20 #jQuery
jQuery HTML设置内容和属性操作实例分析
May 20 #jQuery
jquery html添加元素/删除元素操作实例详解
May 20 #jQuery
jQuery HTML css()方法与css类实例详解
May 20 #jQuery
jQuery 隐藏/显示效果函数用法实例分析
May 20 #jQuery
jQuery 淡入/淡出效果函数用法分析
May 19 #jQuery
You might like
利用PHP制作简单的内容采集器的代码
2007/11/28 PHP
晋城吧对DiscuzX进行的前端优化要点
2010/09/05 PHP
使用php记录用户通过搜索引擎进网站的关键词
2014/02/13 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
nodejs实现黑名单中间件设计
2014/06/17 NodeJs
js实现多选项切换导航菜单的方法
2015/02/06 Javascript
JavaSciprt中处理字符串之sup()方法的使用教程
2015/06/08 Javascript
全面详细的jQuery常见开发技巧手册
2016/02/21 Javascript
JS实现鼠标滑过显示边框的菜单效果
2016/09/21 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
详解vue + vuex + directives实现权限按钮的思路
2017/10/24 Javascript
ES7中利用Await减少回调嵌套的方法详解
2017/11/01 Javascript
10个最受欢迎的 JavaScript框架(推荐)
2019/04/24 Javascript
layui导出所有数据的例子
2019/09/10 Javascript
iview form清除校验状态的实现
2019/09/19 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
[01:00:11]DOTA2-DPC中国联赛 正赛 CDEC vs DLG BO3 第一场 2月7日
2021/03/11 DOTA
Python程序中设置HTTP代理
2016/11/06 Python
Tornado Web Server框架编写简易Python服务器
2018/07/28 Python
Python socket模块实现的udp通信功能示例
2019/04/10 Python
利用python计算windows全盘文件md5值的脚本
2019/07/27 Python
Django视图扩展类知识点详解
2019/10/25 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
Django框架请求生命周期实现原理
2020/11/13 Python
python re.match()用法相关示例
2021/01/27 Python
CSS3教程(3):border-color网页边框色彩
2009/04/02 HTML / CSS
英国领先的家庭时尚品牌:Peacocks
2018/01/11 全球购物
地理科学专业毕业生求职信
2013/10/15 职场文书
捐款倡议书格式范文
2014/05/14 职场文书
学校安全生产月活动总结
2014/07/05 职场文书
公司外出活动方案
2014/08/14 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
2016国庆节67周年寄语
2015/12/07 职场文书
Mysql binlog日志文件过大的解决
2021/10/05 MySQL
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python