如何使用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/