如何使用ES6箭头函数从jQuery on()事件中获取元素?

在使用ES6箭头函数之前,如果我想从jQuery on() click事件中获取元素,那么我可以这样做:

 $(document).on('click', '.inserted-el', function(event) { console.log(this); }); 

但是,使用箭头function,我无法再以这种方式访问this 。 如何获取单击的元素?

您可以使用event.currentTarget来引用处理程序的目标元素

 $(document).on('click', '.inserted-el', function(event) { snippet.log('old -> ' + this.innerHTML + ':' + event.currentTarget.innerHTML); }); $(document).on('click', '.inserted-el', (event) => { snippet.log('new -> ' + this.innerHTML + ':' + event.currentTarget.innerHTML); }); 
      
 `event.currentTarget` 

你的朋友在这里。

您无法将其作为“this”访问的原因是因为箭头函数与其父作用域具有相同的“this”。

您还应该了解event.target

http://joequery.me/code/event-target-vs-event-currenttarget-30-seconds/