ホームページ > ウェブフロントエンド > jsチュートリアル > jQuery クリック ハンドラーと ES6 アロー関数で `$(this)` を正しく使用する方法

jQuery クリック ハンドラーと ES6 アロー関数で `$(this)` を正しく使用する方法

Linda Hamilton
リリース: 2024-12-07 22:11:12
オリジナル
417 人が閲覧しました

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 へのアクセスが不足しています。

解決策は、$(this):

this._pads.on('click', (event) => {
  if (this.go) {
    $(event.currentTarget).addClass('active');
  }
});
ログイン後にコピー

jQuery がイベントを提供する代わりに、event.currentTarget を使用することにあります。 .currentTarget は特にこの目的のために使用されます。これは、字句へのアクセスがコールバック関数では常に実現可能であるとは限らないことを認識しているためです。 event.currentTarget を利用することで、正しい要素がターゲットとなり、このバインディングを変更したり、ES5 コードへの依存関係を導入したりする必要がなくなります。

以上がjQuery クリック ハンドラーと ES6 アロー関数で `$(this)` を正しく使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート