如何使用ES6箭头函数从jQuery on()事件获取元素? [英] How to get the element from a jQuery on() event using an ES6 arrow function?

查看:660
本文介绍了如何使用ES6箭头函数从jQuery on()事件获取元素?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

但是,使用箭头功能,我无法再访问 code>这样。如何获得被点击的元素?

解决方案

您可以使用 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);});  

  ! - 提供`snippet`对象,请参见http://meta.stackexchange.com/a/242144/134069  - >< script src =http://tjcrowder.github.io/simple-snippets-控制台/ 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>  

p>

Previous to using ES6 arrow functions, if I wanted to get the element from a jQuery on() click event then I could do something like this:

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

However, with the arrow function, I can no longer access this in that way. How do I get hold of the element that was clicked on?

解决方案

You can use event.currentTarget to refer to the target element of the handler

$(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);
});

<!-- 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>

这篇关于如何使用ES6箭头函数从jQuery on()事件获取元素?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆