jQueryのonイベントでは、無名関数を指定することが多くあります。
ですが関数として切り出したものを無名関数の中で呼び出すのは二度手間では?と思い、
関数を直接呼び出そうとしたのですが、期待通りの挙動となりません。
無名関数内で関数を呼び出すことと、直接関数を呼ぶことではどう違いがあるのでしょうか?
lang
1<form> 2 <select id="hoge" name="hoge"> 3 <option>hoge</option> 4 <option>fuga</option> 5 <option>piyo</option> 6 </select> 7</form> 8 9<script> 10 $(function(){ 11 //1: document.load時にイベントが走ってしまい期待通りの挙動にならない。 12 $('#hoge').on('change', myFunc('#hoge')); 13 14 //2: thisに#documentが入り、期待通りの挙動とならない。 15 $('#hoge').on('change', myFunc(this)); 16 17 //3: 期待通りの挙動となる。 18 $('#hoge').on('change', function(){ myFunc(this) }); 19 }); 20 21 22 function myFunc(elm){ 23 ... 24 } 25</script>

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/26 10:21