変数をjQuery関数に渡す方法を解明しようとしていますが、この(非常に単純化された)例が意図したとおりに動作しない理由はありません。アイデアは、チェックボックスをクリックするとアラートが表示されるということです。変数を渡すときにjQuery関数がロード時に実行される
ここで問題ありません:関数へのアラートテキストを渡すときに
<input type="checkbox" class="check"/>
<script>
do_alert = function() {
alert("Welcome");
}
$('.check').change(do_alert);
</script>
しかし、アラートが正しいメッセージテキストで、とすぐにページが読み込まとして示されている:
<input type="checkbox" class="check"/>
<script>
do_alert = function(message) {
alert(message);
}
$('.check').change(do_alert("Welcome"));
</script>
このように:
<input type="checkbox" class="check"/>
<script>
function do_alert(message) {
alert(message);
}
$('.check').change(do_alert("Welcome"));
</script>
いずれの場合も、チェックボックスをオンにしても機能は実行されませんが、オンですページを読み込む。私はここで何が欠けていますか?
'change'は関数を引数として期待していますが、' do_alert( "Welcome") 'を使って関数を呼び出し、' undefined'の結果だけを渡しています – haim770