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插件制作 自增长输入框实现代码
Aug 17 jQuery
推荐三款日期选择插件(My97DatePicker、jquery.datepicker、Mobiscroll)
Apr 21 jQuery
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
jQuery zTree树插件动态加载实例代码
May 11 jQuery
jquery+css实现侧边导航栏效果
Jun 12 jQuery
jQuery+C#实现参数RSA加密传输功能【附jsencrypt.js下载】
Jun 26 jQuery
jQuery实现的弹幕效果完整实例
Sep 06 jQuery
jquery select插件异步实时搜索实例代码
Oct 20 jQuery
关于jquery layui弹出层的使用方法
Apr 21 jQuery
JQuery常见节点操作实例分析
May 15 jQuery
jQuery中DOM常见操作实例小结
Aug 01 jQuery
jQuery实现飞机大战小游戏
Jul 05 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
轻松修复Discuz!数据库
2008/05/03 PHP
使用URL传输SESSION信息
2015/07/14 PHP
PHP常用的小程序代码段
2015/11/14 PHP
Laravel中间件实现原理详解
2016/10/09 PHP
JavaScript中的对象化编程
2008/01/16 Javascript
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
表格单元格交错着色实现思路及代码
2013/04/01 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
如何使用HTML5地理位置定位功能
2015/04/27 Javascript
jQuery过滤HTML标签并高亮显示关键字的方法
2015/08/07 Javascript
微信js-sdk上传与下载图片接口用法示例
2016/10/12 Javascript
BootStrap 可编辑表Table格
2016/11/24 Javascript
微信公众平台开发教程(四) 实例入门:机器人回复(附源码)
2016/12/02 Javascript
JS实现焦点图轮播效果的方法详解
2016/12/19 Javascript
Vue原理剖析 实现双向绑定MVVM
2017/05/03 Javascript
Vue组件模板形式实现对象数组数据循环为树形结构(实例代码)
2017/07/31 Javascript
VUE长按事件需求详解
2017/10/18 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
Vue的事件响应式进度条组件实例详解
2018/02/04 Javascript
JavaScript事件冒泡与事件捕获实例分析
2018/08/01 Javascript
全面分析JavaScript 继承
2019/05/30 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
vue-admin-template配置快捷导航的代码(标签导航栏)
2020/09/04 Javascript
[01:20]PWL开团时刻DAY9——听说潮汐没用?
2020/11/10 DOTA
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
python反编译学习之字节码详解
2019/05/19 Python
python变量命名的7条建议
2019/07/04 Python
pytorch中tensor张量数据类型的转化方式
2019/12/31 Python
python中逻辑与或(and、or)和按位与或异或(&amp;、|、^)区别
2020/08/05 Python
玛蒂尔达简服装:Matilda Jane Clothing
2019/02/13 全球购物
宣传标语大全
2014/07/01 职场文书
2014党的群众路线教育实践活动总结材料
2014/10/31 职场文书
入党申请书怎么写?
2019/06/11 职场文书
MYSQL 表的全面总结
2021/11/11 MySQL
Python Pandas 删除列操作
2022/03/16 Python