原生事件委派

因为习惯了jq中去用on()去实现事件委派,原生的反而有点遗忘,所以写个小例子回顾下,当然jq的写法比原生的用起来实在方便太多了。

 原生js的事件委派:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>原生事件委派</title>
</head>
<body>
<ul id = "oUl">
  <li class = "item">1</li>
  <li class = "item">2</li>
  <li class = "item">3</li>
  <li class = "item">4</li>
  <li class = "item">5</li>
</ul>
<button id="btn">add</button>
</body>
<script>
  var items=document.querySelectorAll('.item');
  var oUl=document.getElementById('oUl');
  var btn=document.querySelector('#btn');
  var num=6;
  oUl.addEventListener('click',function (ev) {
    ev=ev||window.event;
    var target=ev.target;
    console.log(target)
    // 获取目标元素
    if (target.nodeName == 'LI') {
      alert(target.innerHTML);
    }
  });
  btn.onclick=function () {
    var ite=document.createElement('li');
    ite.setAttribute('class','item');
    ite.innerHTML=num;
    // var ite="<li class ='item'>"+num+"</li>";
    oUl.appendChild(ite);
    num++;
  }
</script>
</html>

猜你喜欢

转载自blog.csdn.net/ddwddw4/article/details/82965120
今日推荐