博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery的trigger和triggerHandler
阅读量:6176 次
发布时间:2019-06-21

本文共 1335 字,大约阅读时间需要 4 分钟。

一、trigger()方法触发被选元素的指定事件类型

$("button").click(function(){  $("input").trigger("select");})

语法

$(selector).trigger(event,[param1,param2,....]);

参数

event  必需。规定指定元素要触发的事件。可以使用自定义事件(使用bind()函数来附加,或者任何标准事件);

[param1,param2,....]  可选。传递到事件处理程序的额外参数(对自定义事件特别有用)。

二、triggerHandler()语法和参数与trigger()相同,但是它们之间会有些区别。

1.trigger()会操作jQuery对象匹配的所有元素,而triggerHandler()只会影响匹配到的第一个元素。

                      

2.由triggerHandler()创建的事件不会在DOM树种冒泡;如果目标元素不直接处理它们,则不会发生任何事情。

                            

3.trigger会触发事件的默认行为,而triggerHandler则不会(如表单提交)。

4.triggerHandler的返回的是事件处理函数的返回值,而不是具有可链性的 jQuery 对象(trigger)。此外,如果没有处理程序被触发,则这个方法返回 undefined。

trigger源码:

trigger: function( type, data ) {      //对每一个元素都调用jQuery.event.trigger      return this.each(function() {          jQuery.event.trigger( type, data, this );      });  }

triggerHandler源码

triggerHandler: function( type, data ) {      var elem = this[0];      //只有第一个元素调用jQuery.event.trigger,同时第四个参数是true      //表示只是会调用一次      if ( elem ) {          return jQuery.event.trigger( type, data, elem, true );      }  }

因为trigger调用了each方法,该方法虽然遍历了所有的调用对象然后执行指定的函数,但是他的返回值依然是调用对象!但是triggerHandler没有调用each方法,而是直接调用了第一个元素的事件,所以他的返回值就是jQuery.event.trigger的返回值!

转载于:https://www.cnblogs.com/lijia-kapok/p/6558962.html

你可能感兴趣的文章
第十九章 文本处理流编辑器:awk编程
查看>>
Xtrabackup+Rsync 备份数据库并同步到远端备份机
查看>>
activiti实战读书笔记——第九章 多实例
查看>>
php返回相对时间(如:20分钟前,3天前)的方法
查看>>
WilliamChart各种图表效果实现大全《IT蓝豹》
查看>>
shell脚本——linux主机监控
查看>>
eclipse配置jsp页面模板
查看>>
基于高德地图写的不同功能的地图应用
查看>>
DHCP服务器配置
查看>>
快速瓶颈识别
查看>>
运维工作总结201403
查看>>
我是菜鸟我加油……mysql主从同步
查看>>
[体系结构]设计模式(五)
查看>>
分布式文件系统
查看>>
其实很简单 微星为你详解Z77主板BIOS设置
查看>>
在Ubuntu Kylin下安装JDK1.8
查看>>
Hadoop 学习一
查看>>
Linux中生成/etc/shadow的加密密码
查看>>
《gcc五分钟系列》第三节:-o选项
查看>>
批量检测主机存活状态
查看>>