- 締切済み
Javascriptで教えてください
下記1だと実行できるのですが、2だと実行できないのはなぜでしょうか 1 <script type="text/javascript"> function OnButtonClick() { alert('クリック'); } $(function () { }) </script> 2 <script type="text/javascript"> $(function () { function OnButtonClick() { alert('クリック'); } }) </script>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- t_ohta
- ベストアンサー率38% (5238/13705)
OnButtonClick(); という関数をどこからコールしたいか書かれていませんが、この関数をコールする部分が何処にあるかが問題だと思います。 1の書き方の場合は OnButtonClick(); はグローバルスコープなので、ページ内の何処からでもコールすることが可能になります。 一方2の書き方は $(function () { ・・・ } という関数内で OnButtonClick(); 関数を定義しているので関数スコープとなり、 $(function () { ・・・ } 内からしかコールできない関数になり、 $(function () { ・・・ } の外からコールしようとすると undefined エラーになります。 このあたりは実際のエラーメッセージをみれば理由が分かりますので、実行できなかったと言う結論だけではなくエラーメッセージを添えて質問すると回答しやすくなります。 (ご自身でもエラーメッセージを読み解く訓練をしましょう)
- chirakuma
- ベストアンサー率58% (253/430)
何をしたいのかが明記されていないので良くわかりませんが、 $(function () {} はページのreadyで実行されるコード記述するものなので、 $(function(){ alert('クリック'); }) とか書いておけばアラート窓は出るはずです。 詳しいタイミングと分類は下記を参照ください。 http://qiita.com/mimoe/items/74cb3a01a30162759fdd jQueryを使ってクリックイベントで発火するなら .on('load',~~) のほうを使った方が良いです。