JavaScriptイベントの処理
10061 ワード
onclickプロパティの使用
<input type="button" value="버튼1" onclick="doProcess()">
btn.onclick = doProcess; //()를 붙이면 실행하고 그 결과를 넘겨주는거니까 안됨
addEventListener:複数のイベントを登録する
btn.addEventListener('click', doProcess, false);
btn.addEventListener('click', doProcess2, false);
発泡と捕獲
イベント発生要素から親要素に上昇し、イベントをチェックすることをイベント
버블링
と呼びます.(子->親)旧式IE対応
現在、旧式IEにはほとんど対応していないが、今後同様の状況でIEが必要になる可能性もあるため、どのように対応するかが分かった.
//eventEx.html
...
window.onload = function(){
var btn = document.getElementById("btn");
cross.Event.addListener(btn, 'click', doProcess, false);
}
...
//bubblingEx.html
...
function aProcess(e){
alert("aa");
}
// 표준에서는 이렇게 매개변수를 넣어주기만 하면 됨
function bProcess(e){
alert("bb");
// 익스플로어에서 event 객체를 만드는 방법
var event = window.event || e;
cross.Event.stopBubble(event);
}
window.onload = function(){
var aa = document.getElementById("aa");
var bb = document.getElementById("bb");
aa.onclick = aProcess;
bb.onclick = bProcess;
}
...
//crossEvent.js
var cross = {};
cross.Event = {};
cross.Event.addListener = function(element, event, handler, capture){
capture = capture | false; // 없으면 false
if(element.addEventListener) { // 표준 브라우저
element.addEventListener(event, handler, capture);
}else { // 구형 IE
element.attachEvent('on'+event, handler);
}
}
cross.Event.stopBubble = function(event){
if(event.stopPropagation){ // 표준 브라우저
event.stopPropagation();
}else{
event.cancelBubble = true;
}
}
Reference
この問題について(JavaScriptイベントの処理), 我々は、より多くの情報をここで見つけました https://velog.io/@bahar-j/자바스크립트-이벤트-핸들링テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol