리스트에 이벤트를 효율적으로 등록해보자!>

chanto11

·

2021. 2. 3. 17:22

기존의 코드 - 각 <li> 태그를 선택하여 각각 이벤트를 주입해준다.

<ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
  </ul>

  <script>

    let ul = document.querySelectorAll('li');

    ul.forEach(li => li.addEventListener('click', function(e) {
      alert("clicked : " + e.target.innerHTML);
    }))

  </script>

 

개선된 코드 - <ul>태그에 이벤트를 주입하고 클릭한 이벤트가 <li> 이라면 내부로직을 동작시킨다.

 

e.currentTartget : 이벤트 발생 시작 요소 ( 이벤트 핸들러가 부착된 요소)

e.target : 이벤트 전파 최하단 요소

 

  <ul id="list">
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
  </ul>

  <script>

    let app = document.getElementById('list');

    app.addEventListener("click", function(e) {
        if (e.target && e.target.nodeName == "LI") {
          alert("clicked : " + e.target.innerHTML);
        }
    })

  </script>

'Javascript' 카테고리의 다른 글

insertAdjacentHTML 과 innerHTML 차이 알아보기  (0) 2021.02.24
webWorker 맛보기  (0) 2021.02.23
일급 객체와 고차 함수  (0) 2021.02.03
addEventListener 와 onclick  (0) 2021.01.12
Promise - 프로미스  (0) 2021.01.01