YIL - Event Bubbling
8745 ワード
event bubblingとは?
ブラウザには、特定のスクリーン要素でイベントが発生したときに、最もスクリーン要素に近いイベントにイベントを伝播する機能があります.これらのイベントをより高度なスクリーン要素*に渡すJavaScriptの特性をイベントbublingと呼ぶ.
💡 上部のスクリーン要素:HTMLツリーの上部にある要素.bodyラベルは一番上の要素です.
例
HTML<div class="loginContainer">
<h1 class="title">Westagram</h1>
<form class="loginForm">
<input class="userID" type="text" placeholder="전화번호, 사용자 이름 또는 이메일" />
<input class="userPW" type="password" placeholder="비밀번호" />
<button class="submitBtn" type="submit">로그인</button>
</form>
<a href="#" class="forgot_link">비밀번호를 잊으셨나요?</a>
</div>
Javascriptconst form = document.querySelector(".loginForm");
const formInput = form.addEventListener("keydown", () => {
const idInput = document.querySelector(".userID").value.length;
const pwInput = document.querySelector(".userPW").value.length;
const submitBtn = document.querySelector(".submitBtn");
idInput && pwInput > 0
? submitBtn.classList.add("activeBtn")
: submitBtn.classList.remove("activeBtn");
})
上記のHTMLによれば、form
>userID
、userPW
、submitBtn
、form
からなる.
イベントバブルの概念を使用して、addEventLister
を全体userID
に送信し、その後、userPW
にイベントを送信し、form
の要素はすべてこのイベントを聞くことができる.
上記の場合、form
で発生したすべてのイベントを選択し、idInput
、pwInput
変数を作成して、各プロジェクトのイベント値を引き出します.
このようにevent bubblingを使用すると、グローバル変数の乱用を低減し、コードをより簡潔にすることができます.
一緒に勉強すればいい内容
HTML
<div class="loginContainer">
<h1 class="title">Westagram</h1>
<form class="loginForm">
<input class="userID" type="text" placeholder="전화번호, 사용자 이름 또는 이메일" />
<input class="userPW" type="password" placeholder="비밀번호" />
<button class="submitBtn" type="submit">로그인</button>
</form>
<a href="#" class="forgot_link">비밀번호를 잊으셨나요?</a>
</div>
Javascriptconst form = document.querySelector(".loginForm");
const formInput = form.addEventListener("keydown", () => {
const idInput = document.querySelector(".userID").value.length;
const pwInput = document.querySelector(".userPW").value.length;
const submitBtn = document.querySelector(".submitBtn");
idInput && pwInput > 0
? submitBtn.classList.add("activeBtn")
: submitBtn.classList.remove("activeBtn");
})
上記のHTMLによれば、form
>userID
、userPW
、submitBtn
、form
からなる.イベントバブルの概念を使用して、
addEventLister
を全体userID
に送信し、その後、userPW
にイベントを送信し、form
の要素はすべてこのイベントを聞くことができる.上記の場合、
form
で発生したすべてのイベントを選択し、idInput
、pwInput
変数を作成して、各プロジェクトのイベント値を引き出します.このようにevent bubblingを使用すると、グローバル変数の乱用を低減し、コードをより簡潔にすることができます.
一緒に勉強すればいい内容
Reference
この問題について(YIL - Event Bubbling), 我々は、より多くの情報をここで見つけました https://velog.io/@hjkdw95/YIL-Event-Bubblingテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol