前提・実現したいこと
JavaScript初心者です。
div要素にカーソルを合わせた際に色が変わる関数をアロー関数で記述したく下記のコードを実行したのですが、カーソルを合わせても色が変わらなくなりました。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>jQueryの練習</title> </head> <body> <div id="box" style="width: 100px; height: 100px; background: red;"></div> <script src="https://code.jquery.com/jquery-1.10.1.min.js"></script> <script> 'use strict'; $( () =>{ $('#box') .mouseover( () => $(this).css('background', 'green') ); // 元の関数。これをアロー関数で記述したい // .mouseover( function() { // $(this).css('background', 'green'); // }); }); </script> </body> </html>
調べたところアロー関数はthisなどが絡むと無名関数とは挙動が変わるとのことでしたが、
アロー関数のthisでdiv(box)が指定された時点でboxのwidth, height, backgroundが確定されてしまい、その後のcss変更が無効化されている
という認識で合っているでしょうか。
また、アロー関数で記述するべきかという点や、アロー関数で記述する方法などもご教授お願いします。
補足情報(FW/ツールのバージョンなど)
jquery-1.10.1
VSCode
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。