117. 事件委托

JavaScript

中等难度  -通过 / -执行

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

始终思考更好的解决办法