.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.Eventobject. - 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>
演示结果