117. 事件委托

中等难度  -通过 / -执行

Event Delegation是什么?

请实现一个类似于 jQuery.on()的方法,用来注册事件处理器。

在jQuery中,可以用selector来选择element,在本题目中,这简化为一个predicate函数。

onClick(
  // root element
  document.body,  
  // predicate
  (el) => el.tagName.toLowerCase() === 'div',  
  function(e) {
    console.log(this);
    // this logs all the `div` element
  }
)
  1. event.stopPropagation()event.stopImmediatePropagation() 都需要被支持。

  2. 请只在root element上添加一个真正的event listener

普通解法但是bugfree胜于奇技淫巧但是各种bug。

(1)
(35)