出于好奇——jQuery 的目的/用例是什么triggerHandler
?据我所知,两者之间唯一“真正”的区别trigger
and triggerHandler
是本机事件是否触发,以及事件冒泡行为(尽管triggerHandler
的冒泡行为似乎并不难复制trigger
多写几行代码)。确保本机事件不触发有什么好处?
我很好奇这是否是一个方便的功能,或者它存在的更深层次的原因,以及为什么/何时使用它。
来自文档http://api.jquery.com/triggerHandler/ http://api.jquery.com/triggerHandler/
.triggerHandler() 方法的行为
与 .trigger() 类似,
以下例外情况:
- .triggerHandler() 方法不会导致默认行为
发生的事件(例如表单
提交)。
不阻止默认浏览器操作允许您指定在焦点或选择等上发生的应用样式的操作。也许您有一个基于 Javascript 的动态菜单,因此您不想纯粹使用 CSS 应用样式,否则那些禁用 Javascript 的人将无法理解为什么布局看起来很奇怪。你可以使用类似的东西$('menu1select').triggerHandler('click');
- 而 .trigger() 将对 jQuery 匹配的所有元素进行操作
对象,.triggerHandler() 只影响
第一个匹配的元素。
例如,如果您有一个隐藏元素 onclick 的事件,并且您想一般调用该函数,而不必指定每个元素,则可以使用$('.menu').triggerHandler('click')
;
- 使用 .triggerHandler() 创建的事件不会冒泡
DOM 层次结构;如果不处理
直接通过目标元素,他们
没做什么。
防止传播,希望不必解释这一点......
- 不是返回 jQuery 对象(以允许链接),
.triggerHandler() 返回任何内容
值是由最后一个处理程序返回的
它导致被处决。如果不
处理程序被触发,它返回
不明确的
这也应该是不言自明的......
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)