CustomEvent
dispatchEvent
<code class="language-html"><label for="msg">你的留言</label><input type="text" id="msg"><button type="submit" form="msgbox">发送</button> <form id="msgbox"></form></code>
<code class="language-javascript">document.getElementById("msgbox").addEventListener("submit", function(e) { e.preventDefault(); var msg = e.currentTarget.getElementById("msg").value.trim(); if (msg) { alert(msg); } }, false);</code>이 예에서 "NewMessage"는 사용자 정의 이벤트 유형입니다. 두 번째 매개 변수는 세 가지 속성을 가진 객체입니다.
detail
bubbles
true
: 인 경우 이벤트 객체의 cancelable
true
stopPropagation()
다음 코드를 사용 하여이 이벤트를 구독 할 수있는 핸들러가 다수의 핸들러는 다음과 같습니다.
<code class="language-html"><label for="msg">你的留言</label><input type="text" id="msg"><button type="submit" form="msgbox">发送</button> <form id="msgbox"></form></code>>로 설정되었으므로 이벤트는 root
와 같은 양식 또는 조상에 적용될 수 있습니다. >
메시지 자체는 이벤트 객체의<code class="language-javascript">document.getElementById("msgbox").addEventListener("submit", function(e) { e.preventDefault(); var msg = e.currentTarget.getElementById("msg").value.trim(); if (msg) { alert(msg); } }, false);</code>속성에서 추출 될 수 있습니다.
브라우저 호환성
객체. 야간 버전의 Safari에서 사용할 수 있으므로 곧 해당 브라우저에서 사용할 수 있습니다. 이 객체는 IE9 이하에서 지원되지 않습니다. 다행히도 여러 JavaScript 라이브러리는 Custom Event Delegates를 지원하므로 SitePoint를 계속 지켜봐 주시면 곧 브라우저 크로스 솔루션을 얻으십시오.
<code class="language-javascript">var event = new CustomEvent( "newMessage", { detail: { message: "Hello World!", time: new Date(), }, bubbles: true, cancelable: true } );</code>(FAQS 부분은 의사 원리 목표와 일치하지 않고 너무 길기 때문에 여기서 생략됩니다.)
위 내용은 JavaScript에서 사용자 정의 이벤트를 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!