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

争取10分钟以内搞定这个问题

讨论(16)