首页 >web前端 >js教程 >如何在 jQuery 单击处理程序和 ES6 箭头函数中正确使用 `$(this)`?

如何在 jQuery 单击处理程序和 ES6 箭头函数中正确使用 `$(this)`?

Linda Hamilton
Linda Hamilton原创
2024-12-07 22:11:12437浏览

How to Correctly Use `$(this)` with jQuery Click Handlers and ES6 Arrow Functions?

jQuery $(this) 和 ES6 箭头函数

虽然 ES6 箭头函数提供词法 this 绑定,但与jQuery 单击绑定。在这种情况下使用箭头函数时,$(this) 的行为有所不同,本质上是模拟 ES5 闭包行为:

this._pads.on('click', () => {
  if (this.go) { $(this).addClass('active'); }
});

要解决此问题,重要的是要了解 Traceur 无法忽略 $( this) 用于此上下文中的词汇绑定。 ES6 规定了箭头函数的行为,它们本质上缺乏对词法 this 的访问。

解决方案在于使用 event.currentTarget 而不是 $(this):

this._pads.on('click', (event) => {
  if (this.go) {
    $(event.currentTarget).addClass('active');
  }
});

jQuery 提供事件.currentTarget 专门用于此目的,因为它认识到使用回调函数访问词法 this 并不总是可行。通过利用 event.currentTarget,将定位正确的元素,从而无需修改此绑定或引入对 ES5 代码的依赖。

以上是如何在 jQuery 单击处理程序和 ES6 箭头函数中正确使用 `$(this)`?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn