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简单绑定单个事件的方法示例
Jun 10 jQuery
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
jQuery替换节点元素的操作方法
Mar 18 jQuery
jQuery实现的上传图片本地预览效果简单示例
Mar 29 jQuery
jQuery鼠标滑过横向时间轴样式(代码详解)
Nov 01 jQuery
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
Nov 18 jQuery
js、jquery实现列表模糊搜索功能过程解析
Mar 27 jQuery
jQuery实现简单日历效果
Jul 05 jQuery
IDEA配置jQuery, $符号不再显示黄色波浪线的问题
Oct 09 jQuery
jquery插件懒加载的示例
Oct 24 jQuery
JQuery+drag.js上传图片并且实现图片拖曳
Nov 18 jQuery
多种类型jQuery网页验证码插件代码实例
Jan 09 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&amp;MYSQL分页原理及实现
2007/01/02 PHP
基于PHP中的常用函数回顾
2013/07/11 PHP
PHP把MSSQL数据导入到MYSQL的方法
2014/12/27 PHP
微信支付扫码支付php版
2016/07/22 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP常用正则表达式精选(推荐)
2019/05/28 PHP
php使用filter_var函数判断邮箱,url,ip格式示例
2019/07/06 PHP
任意位置显示html菜单
2007/02/01 Javascript
JQery 渐变图片导航效果代码 漂亮
2010/01/01 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
jquery计算鼠标和指定元素之间距离的方法
2015/06/26 Javascript
js实现的黑背景灰色二级导航菜单效果代码
2015/08/24 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
jquery使用on绑定a标签无效 只能用live解决
2016/06/02 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
微信小程序 使用picker封装省市区三级联动实例代码
2016/10/28 Javascript
Node.js读取文件内容示例
2017/03/07 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
JavaScript创建对象的七种方式全面总结
2017/08/21 Javascript
Nodejs调用WebService的示例代码
2017/09/29 NodeJs
vue基本使用--refs获取组件或元素的实例
2019/11/07 Javascript
[00:48]食人魔魔法师至宝“金鹏之幸”全新模型和自定义特效展示
2019/12/19 DOTA
Python中矩阵库Numpy基本操作详解
2017/11/21 Python
Selenium控制浏览器常见操作示例
2018/08/13 Python
python实现弹窗祝福效果
2019/04/07 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
分享unittest单元测试框架中几种常用的用例加载方法
2020/12/02 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
创造美妙香氛体验:Aera扩散器和香水
2018/11/25 全球购物
社会学专业求职信
2014/07/17 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书
六五普法心得体会2016
2016/01/21 职场文书
PyTorch 实现L2正则化以及Dropout的操作
2021/05/27 Python
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python