>  기사  >  웹 프론트엔드  >  jQuery.triggerHandler() 함수에 대한 자세한 설명

jQuery.triggerHandler() 함수에 대한 자세한 설명

巴扎黑
巴扎黑원래의
2017-06-25 14:24:481426검색

triggerHandler() 함수는 일치하는 각 요소에서 지정된 유형의 이벤트를 트리거하는 데 사용됩니다.

또한 이벤트가 트리거될 때 Event Handling 함수에 추가 매개변수를 전달할 수도 있습니다.

이 함수의 기능은 Trigger() 함수와 유사하지만, TriggerHandler() 함수에는 다음과 같은 예외가 있습니다.

triggerHandler()는 실행 요소의 기본 동작(예: 기본 점프 동작)을 트리거하지 않습니다. 링크 클릭 이벤트, 양식 제출 이벤트 기본 커밋 동작).

triggerHandler()는 jQuery 객체에서 첫 번째로 일치하는 요소에 대해서만 이벤트를 트리거합니다.

triggerHandler()에 의해 트리거된 이벤트는 DOM 트리에서 버블링되지 않으므로 해당 이벤트는 상위 요소까지 버블링되지 않습니다.

triggerHandler()의 반환 값은 현재 jQuery 개체 자체가 아니라 해당 이벤트 처리 함수의 반환 값 입니다.

이 함수는 jQuery 객체(인스턴스)에 속합니다.

Syntax

이 기능은 jQuery 1.2에서 추가되었습니다.

jQueryObject.triggerHandler( events [, extraArguments ] )

parameters

parameter Description

events 문자열 유형은 "click", "focus", "keydown.myPlugin "과 같은 이벤트 유형과 선택적 namespace를 지정합니다.

extraArguments option/Object 유형은 이벤트 처리 함수에 의해 전달된 추가 매개변수입니다. 여러 매개변수를 전달하려면 배열로 전달하세요.

triggerHandler() 함수는 실행을 트리거하는 이벤트 처리 함수에 대한 기본 매개변수를 전달합니다. 이는 현재 이벤트를 나타내는 Event 객체입니다.

extraArguments 매개변수는 이벤트 처리 함수에 더 많은 추가 매개변수를 전달하는 데 사용됩니다. extraArguments가 배열 형식인 경우 각 요소는 함수에 대한 인수 역할을 합니다.

반환 값

triggerHandler() 함수의 반환 값은 모든 유형이며 실행을 트리거한 이벤트 처리 함수의 반환 값을 반환합니다.

예제 및 설명

다음 초기 HTML 코드를 참조하세요.

<input id="btn1" type="button" value="点击1" />
<input id="btn2" type="button" value="点击2" />
<a id="a1" href="#">CodePlayer</a>
<div id="log"></div>

먼저 위의 버튼과 3499910bf9dac5ae3c52d5ede7383485 요소에 이벤트를 바인딩한 다음, TriggerHandler() 함수를 사용하여 이벤트를 직접 트리거합니다. 해당 코드는 다음과 같습니다.

var $log = $("#log");
function handler( event, arg1, arg2 ){
    var html = &#39;<br>触发元素#&#39; + this.id + &#39;的[&#39; + event.type +&#39;]事件,额外的函数参数为:&#39; + arg1 + &#39;, &#39; + arg2;
    $log.append( html );
}
var $buttons = $(":button");
// 为所有button元素的click事件绑定事件处理函数
$buttons.bind( "click", handler );
// 为所有a元素的click、mouseover、mouseleave事件绑定事件处理函数
$("a").bind( "click mouseover mouseleave", handler );
// 触发btn1的click事件
// 虽然$buttons匹配两个button元素,但只会触发第一个匹配元素的click事件
$buttons.triggerHandler("click");
/*(追加文本)
触发元素#btn1的[click]事件,额外的函数参数为:undefined, undefined
*/
$("#btn2").triggerHandler("click", "CodePlayer");
/*(追加文本)
触发元素#btn2的[click]事件,额外的函数参数为:CodePlayer, undefined
*/
// arg1 = "张三", arg2 = 20
$("a").triggerHandler("mouseover", ["张三", 20 ] );
/*(追加文本)
触发元素#a1的[mouseover]事件,额外的函数参数为:张三, 20
*/
$("a").triggerHandler("mouseleave", { name: "张三", age: 18 } );
/*(追加文本)
触发元素#a1的[mouseleave]事件,额外的函数参数为:[object Object], undefined
*/

코드 실행(실행하려면 데모 페이지에 다른 코드를 복사하세요.)

triggerHandler() 함수는 이벤트 처리 함수에 전달된 Event 개체를 기반으로 해당 이벤트를 트리거할 수도 있습니다.

아아아아

위 내용은 jQuery.triggerHandler() 함수에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.