美文网首页
原生js动态绑定事件(事件委托)

原生js动态绑定事件(事件委托)

作者: erichow | 来源:发表于2016-12-15 11:46 被阅读0次
    <button id="add">add row</button>
    <script>
    
    document.getElementById('add').addEventListener('click', function() {
      var dom = document.body.firstChild;
      var newdom = document.createElement('div');
      newdom.innerHTML = '11111111111111111';
      document.body.insertBefore(newdom, document.body.firstChild);
    });
    
    // 动态添加事件
    function liveEvent(el, type, name, callback) {
    
      function wrapEvent(e) {
        e = e || window.event;
        e.srcElement = e.srcElement || e.target;
        return e;
      }
        
      function handler (e) {
        e = wrapEvent(e);
        if (e.srcElement.nodeName.toLowerCase() === name) {
          callback.call(e.srcElement, e);
        }
      }
    
      if (el.addEventListener) {
        el.addEventListener(type, handler, false);
      }
      else if (el.attachEvent) {
        el.attachEvent('on' + type, handler, false);
      }
      else {
        el['on' + type] = handler;
      }
    }
    
    liveEvent(document.body, 'click', 'div', function(e) {
      this.parentNode.removeChild(this);
    });
    
    </script>
    

    相关文章

      网友评论

          本文标题:原生js动态绑定事件(事件委托)

          本文链接:https://www.haomeiwen.com/subject/ijowmttx.html