function内でのthisの対象を明示的に指定するには、$.proxy()を使用します。
サンプルソース
例)Function「hoge」を呼び出し時にthisの対象を指定する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>サンプル</title> <script src="http://code.jquery.com/jquery-3.2.1.min.js"></script> <script> $(function(){ //ボタンにイベントを設定 $("#btn1").click($.proxy(hoge, $('#d1'))); $("#btn2").click($.proxy(hoge, $('#d2'))); //関数 function hoge(){ var str = $(this).text(); console.log(str); } }); </script> </head> <body> <input type="button" id="btn1" value="ボタン1"> <input type="button" id="btn2" value="ボタン2"> <div id="d1">aaa</div> <div id="d2">bbb</div> </body> </html> |
- (結果)
- //ボタン1 aaa //ボタン2 bbb
解説
- Function内でthisの対象となる要素を直接指定しても同じ事ができます。