.triggerHandler()| jqueryAPI 2.2 中文手册- AspRain.cn 致力于Web开发技术翻译整理

jQuery API 2.2.0

.triggerHandler()

分类:事件 > 事件处理附加物

返回: Object

.triggerHandler( eventType [, extraParameters ] )

描述:执行所有的附加到某个元素上针对某个事件的处理函数。

加入于: 1.2
.triggerHandler( eventType [, extraParameters ] )
  • eventType
    类型:String
    一个字符串,它包含了一个JavaScript事件对象,比如说click或者keydown
  • extraParameters
    类型:Array or PlainObject
    传递给事件处理函数的额外参数。
加入于: 1.3
.triggerHandler( event [, extraParameters ] )

.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>

演示结果

如果网页上不能运行示例,请点击http://www.asprain.cn/jQueryAPI/triggerhandler.htm查看示例。

如果你觉得本文档对你有用,欢迎给翻译作者支付宝打赏,支持翻译作者源源不断翻译更多有用的技术文档。