当前位置:首页 > 日记 > 正文

jQuery中on方法使用注意事项详解

jQuery中on方法使用注意事项详解

on(eventType,[childSelector],[data],fn)

采用事件委托机制绑定事件,好处是子元素动态加入时无需再次绑定。

on方法可以传入childSelector指定添加事件处理函数的具体子元素,还可以传入对象格式的数据data,fn函数内部通过event.data.XXX获取具体参数。传入事件处理函数的data需要在事件绑定时就确定好,不同于trigger('eventType',[data]),tirgger方法中传入的data(对象或数组形式)是事件发生时才计算的值。

如果同一个事件处理程序被多次绑定给同一个元素,触发时就会执行多遍。所以绑定之前,需要先解绑之前的相同事件:

$(“selector”).off("click.xxx").on('click.xxx',function(){…});

如要在同一个元素上绑定不同事件处理函数,可以用事件的命名空间加以区分:click.forSpan、click.forDiv。

delegate()的源码是调用on()方法,只不过参数顺序变了,所以统一用on()。

事件触发顺序:

target是触发事件的元素,不会变;currentTarget是事件处理函数当前所在的元素,会动态变化;delegateTarget是事件处理函数绑定的对象,不会变。

on方法利用了事件冒泡机制,事件会从事件源一直冒泡传递到document,并触发相应元素的事件处理函数(若有)。

事件处理队列:从触发事件的元素开始,遍历至delegateTarget,查找childSelector所指定的元素节点,并在事件处理队列handlerQueue中压入事件处理函数,最后将delegateTarget元素直接绑定的事件处理也压入队列(委托事件先于直接绑定的)。

on方法的冒泡过程中,具有事件处理函数的是delegateTarget元素而不是childSelector元素。

$("div").on('click','span',function(event){   alert("The span element was clicked."); }); $("p").click(function(event){   alert("The p element was clicked."); }); $("div").click(function(){   alert("The div element was clicked."); });

点击span元素时,span元素上没有绑定事件处理函数,冒泡传递到P元素,P元素有直接绑定的事件处理函数,最先弹出P;然后传递到最外层div元素,div元素有事件委托,jQuery会从target (span)遍历到delegateTarget (div),查找childSelector节点,并压入事件处理队列中。最后压入delegateTarget (div)元素直接绑定的事件处理函数。所以会弹出Span后弹出Div。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持!

相关文章

PHP7.1新功能之Nullable Type用法

PHP7.1新功能之Nullable Type用法

新功能,电脑软件,Type,Nullable,本文实例分析了PHP7.1新功能之Nullable Type用法。分享给大家供大家参考,具体如下:在 PHP5 时代,PHP 的参数已经支持 type hint(除了基本类型),想必大家应该很熟悉;后来 PHP7 时代来临,PHP 也可以指定返回值的类型(以…

在EXCEL中设置各种不同字体的方法

在EXCEL中设置各种不同字体的方法

设置,方法,字体,电脑软件,EXCEL,在EXCEL中设置各种不同字体的方法 方法/步骤1、首先打开EXCEL2003表.如下图所示:2、选择已经建立的表格,如下图所示: 3、选中你所需要设置的表格区域,点击田字型样式旁边的倒三角键头。如下图所示:4、然后会出现…

最幽默个性签名的经典搞笑个性签名

最幽默个性签名的经典搞笑个性签名

个性签名,幽默,搞笑,经典,电脑软件,事实上,你有优势。鬼魂不敢跑到你家过夜。下面是一个小编辑,组织最幽默的个人签名的相关资料供你参考! 最幽默的人格签名{优秀文本} 1。爱情是对天地的迷信。 2。也许心碎是最美的爱。 三.爱情就像一起旅…

如何设置时间和日期PPT2010制作同

如何设置时间和日期PPT2010制作同

日期,如何设置,同步显示,时间,电脑软件,如何在PPT中插入时间并同步更新创建幻灯片幻灯片时,需要插入当前时间和日期。如果是手动输入,它只是一串数字,不能实现同步更新。让我们在PPT中分享插入时间和同步更新的方法。不懂的朋友会学到更多。 …

ES6入门教程之let和const命令详解

ES6入门教程之let和const命令详解

命令详解,入门教程,电脑软件,const,前言在javascript中,我们都知道使用var来声明变量。javascript是函数级作用域,函数内可以访问函数外的变量,函数外不能访问函数内的变量。函数级作用域会导致一些问题就是某些代码块内的变量会在全局范围内…

如何在PPT中制作文字动画效果

如何在PPT中制作文字动画效果

动画效果,文字,如何在,电脑软件,PPT,  为什么别人的PPT就制作的那么好看呢?其实没有什么不同的,只是我们不会用PPT而已。现在很多幻灯片中都会选择文字动画效果,立马给人很高大上的感觉。以下是小编为您带来的关于PPT制作文字动画效果,希望…

ORACLE自动备份控制文件的方法介绍

ORACLE自动备份控制文件的方法介绍

自动备份,方法,控制文件,电脑软件,ORACLE,RMAN(Recovery Manager)是一个用于备份Oracle工具(备份),恢复(恢复)和恢复(恢复)databases.rman只能用于Oracle8或更高版本。它可以备份整个数据库或数据库组件,如表空间,数据文件,控制文件,归档文件,并为参数fil…

Illustrator简单绘制一个可爱的小

Illustrator简单绘制一个可爱的小

图标,绘制,饼干,可爱,简单,今天为大家分享Illustrator简单绘制一个可爱的小饼干图标方法介绍,操作很简单,也很基础,喜欢的朋友可以跟着这篇教程进行操作,希望能对大家有所帮助!步骤:教程结束,以上就是Illustrator简单绘制一个可爱的小饼干图标教程…

InDesign字符集基线偏移、旋转和间

InDesign字符集基线偏移、旋转和间

字符集,基线,间距,电脑软件,InDesign,以通用符号的字符特征为例,介绍了字符基线偏移、旋转和距离的设置方法。 步: 1、拖动鼠标选择风字。 2、按Ctrl + T组合键打开字符面板;;,基线偏移;输入- 3按下{Enter}键,然后输入字符旋转15按下{Enter}键。…

Word2016文档裁剪图形的方法是什么

Word2016文档裁剪图形的方法是什么

文档,方法,图形,电脑软件,  我们向Word中插入图片之后,有时候会因为图片的大小或者只想保留图片某些部分而对图片进行裁剪,相比于早期的版本Word2016中的裁剪更为强大和好用。以下是小编为您带来的关于Word2016裁剪图形的方法,希望对您有所…

基于Node.js的WebSocket通信实现

基于Node.js的WebSocket通信实现

电脑软件,Node,js,WebSocket,node的依赖包node中实现Websocket的依赖包有很多,websocket、ws均可,本文选取ws来实现,首先安装依赖npm install ws聊天室实例假如A,B,C,D用户均通过客户端连接到Websocket服务,其中每个人发的消息都需要将其通过We…

PHP基于关联数组20行代码搞定约瑟

PHP基于关联数组20行代码搞定约瑟

数组,约瑟夫,示例,代码,电脑软件,本文实例讲述了PHP基于关联数组20行代码搞定约瑟夫问题。分享给大家供大家参考,具体如下:记得前段时间一写做java开发的兄弟对我说他java60行做了个约瑟夫问题,挺不错的。调侃php应该写这个挺不行的。于是 呵…