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

Fis*_*isu 4 javascript jquery ecmascript-6

在使用ES6箭头函数之前,如果我想从jQuery on()单击事件中获取元素,那么我可以执行以下操作:

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

但是,使用箭头功能,我无法再this以这种方式访问.如何获取所点击的元素?

Aru*_*hny 8

您可以使用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);
});
Run Code Online (Sandbox Code Playgroud)
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="inserted-el">1</button>
<button class="inserted-el">2</button>
Run Code Online (Sandbox Code Playgroud)