最近第一次写了一个用到jQuery event系统的插件,结果在调试时遇到了莫名问题,在大量调试后,发现是元素连它的子元素的相同事件都响应了。一查jquery的doc,发现triggerhander和trigger还是有不少区别的。
http://api.jquery.com/triggerHandler
- 不触发诸如表单提交这类默认事件
- 只出发第一个匹配的DOM
- 直接触发在对象DOM上,不触发在其他有继承关系的元素上
- 返回函数的值,而不是jQuery对象本身
就这些描述来看,其实triggerhander比trigger的实用型高很多,但为什么会在js这个惜字如今的环境下起更长的名字,也让我觉得有点奇怪啊。