From the Docs at http://api.jquery.com/triggerHandler/
The .triggerHandler() method behaves
similarly to .trigger(), with the
following exceptions:
- The .triggerHandler() method does not cause the default behavior of an
event to occur (such as a form
submission).
Not preventing the default browser actions allow you to specify an action that occurs on focus or select, etc etc etc, that applies a style. Maybe you have a dynamic menu that is Javascript based, so you don't want to apply the style purely with CSS otherwise those with Javascript disabled won't understand why the layout looks odd. You can use something like $('menu1select').triggerHandler('click');
- While .trigger() will operate on all elements matched by the jQuery
object, .triggerHandler() only affects
the first matched element.
If you have an event which hides an element onclick for example, and you want to call that function generally, instead of having to specify each element, you can use $('.menu').triggerHandler('click')
;
- Events created with .triggerHandler() do not bubble up the
DOM hierarchy; if they are not handled
by the target element directly, they
do nothing.
Prevents propagation, hopyfully don't have to explain this one...
- Instead of returning the jQuery object (to allow chaining),
.triggerHandler() returns whatever
value was returned by the last handler
it caused to be executed. If no
handlers are triggered, it returns
undefined
This one should be self explanatory as well...
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…