.triggerHandler()
返回: Object
.triggerHandler( eventType [, extraParameters ] )
描述:执行所有的附加到某个元素上针对某个事件的处理函数。
加入于: 1.2
.triggerHandler( eventType [, extraParameters ] )- eventType类型:String一个字符串,它包含了一个JavaScript事件对象,比如说
click
或者keydown
。 - extraParameters类型:Array or PlainObject传递给事件处理函数的额外参数。
加入于: 1.3
.triggerHandler( event [, extraParameters ] )- event类型:EventA
jQuery.Event
object. - extraParameters类型:Array or PlainObject传递给事件处理函数的额外参数。
.triggerHandler( eventType )
会执行所有针对该事件类型、用jQuery绑定的处理函数。它也会执行任何在该元素上找到的、调用on{eventType}()
的方法。该方法的行为近似于.trigger()
,但是有以下区别:
.triggerHandler( "event" )
方法不会在触发它的元素上,调用该元素上的.event()
事件。这意味着在一个表单上调用.triggerHandler( "submit" )
不会调用表单上的.submit()
行为。.trigger()
方法会在所有匹配该jQuery对象的元素上起作用,与此同时,.triggerHandler()
只会影响第一个匹配的元素。- 用
.triggerHandler()
触发的事件不会在DOM中向上冒泡;如果在目标元素上没有直接绑定的处理函数,就不会做任何事。 .triggerHandler()
方法不会返回用于连缀的jQuery对象,而是返回因它导致被执行的那个函数的函数返回值。如果没有触发任何处理函数,它返回undefined。
欲了解更多关于这个方法的信息,请参阅.trigger()
。
示例
如果你在focus事件上调用.triggerHandler()
——将不会触发浏览器的默认聚焦操作,只会触发绑定到聚焦事件上的事件处理函数。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>triggerHandler demo</title> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <button id="old">.trigger( "focus" )</button> <button id="new">.triggerHandler( "focus" )</button><br><br> <input type="text" value="To Be Focused"> <script> $( "#old" ).click(function() { $( "input" ).trigger( "focus" ); }); $( "#new" ).click(function() { $( "input" ).triggerHandler( "focus" ); }); $( "input" ).focus(function() { $( "<span>Focused!</span>" ).appendTo( "body" ).fadeOut( 1000 ); }); </script> </body> </html>
演示结果