返回值:ObjecttriggerHandler(eventType, [extraParameters])
执行绑定在元素上指定事件的所有处理函数。
-
1.2 新增triggerHandler(eventType, [extraParameters])
eventType (String) 包含 JavaScript 事件类型的字符串。例如click
或submit
。extraParameters (Array) 可选参数,传入到事件处理中的额外参数数组。
.triggerHandler()
方法的行为与 .trigger()
相似,不同之处有如下几点:
.triggerHandler()
方法并不会触发事件的默认行为。(例如,表单提交)。.trigger()
会影响所有与 jQuery 对象相匹配的元素,而.triggerHandler()
仅影响第一个匹配到的元素。- 使用
.triggerHandler()
创建的事件,并不会在 DOM 树中向上冒泡。如果事件没有被目标元素直接处理,那么它就不会进行任何处理。 - 与普通的方法返回 jQuery 对象(这样就能够使用链式用法)相反,
.triggerHandler()
返回最后一个处理的事件的返回值。如果没有触发任何事件,会返回undefined
。
若想了解更多关于本方法的信息,请参阅
.trigger()
方法。
示例:
如果您使用 .triggerHandler() 触发 focus 事件,那么它只会触发绑定了该事件的处理函数,而浏览器的默认 focus 动作是不会被触发的。
<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.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>