自定义事件.trigger()和.triggerHandler()
1 .trigger()根据绑定到匹配元素的给定的事件类型执行所有的处理程序和行为,除了能够触发浏览器事件,同时还支持自定义事件,并且自定义时间还支持传递参数
2 trigger触发浏览器事件与自定义事件区别
自定义事件对象,是jQuery模拟原生实现的
自定义事件可以传递参数
3 alert的执行必须要有用户点击才可以
4 triggerHandler与trigger的用法是一样的,区别是
triggerHandler不会触发浏览器的默认行为,.triggerHandler( "submit" )将不会调用表单上的.submit()
.trigger() 会影响所有与 jQuery 对象相匹配的元素,而 .triggerHandler() 仅影响第一个匹配到的元素
使用 .triggerHandler() 触发的事件,并不会在 DOM 树中向上冒泡。 如果它们不是由目标元素直接触发的,那么它就不会进行任何处理
与普通的方法返回 jQuery 对象(这样就能够使用链式用法)相反,.triggerHandler() 返回最后一个处理的事件的返回值。如果没有触发任何事件,会返回 undefined
5 trigger的特性是会在DOM树上冒泡,如果要阻止冒泡,在事件处理程序中返回false或调用事件对象中的.stopPropagation()方法可以使事件停止冒泡
6 trigger具有触发原生与自定义能力,但是事件对象event无法完美的实现,因为一个是浏览器给的,一个是自己模拟的
7 .trigger()模拟事件对象,但他没有完美的复制自然发生的事件,如果要触发通过JQuery绑定的事件处理函数,而不触发原生的事件,使用.triggerHandler()来代替
本文转自 拉考的考拉 51CTO博客,原文链接:
http://blog.51cto.com/lakaodekaola/2071872