jQueryでthisを使うとき、どのようなコードを書けばいいですか?
まず、アロー関数で関数を定義すると、定義された場所で this が束縛されてしまい、結果クリックされたオブジェクトはとれないということが分かりました。
以下のコードだと、その影響でクリックした'p'のカラーを変えることができません。
js
1 $('p').click(()=>{ 2 $(this).css('color', 'red'); 3 });
その際の対処法として、自分が知っている手段が二つあるのですが、どちらがいいのか、これ以外に他の方法があるのか、教えていただきたいです。
1.event を引数に event.currentTarget を使うことで、イベントが発生したオブジェクトを取得(この場合だと、そもそもthisを使いませんが、、)
js
1 $('p').click( event =>{ 2 $(event.currentTarget).css('color', 'red') 3 });
2.アロー演算子を使わず、function()で書く
js
1 $('p').click(function(){ 2 $(this).css('color', 'red') 3 });
この二つのどちらがいいのか、これ以外の方法がわかる方いらっしゃいましたら、ご回答お待ちしております。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/05/31 14:17
2019/05/31 14:33
2019/06/04 12:24