$(document).ready(function()の中の関数を外部から呼び出す


お世話になります。
$(document).ready(function(){
  function test(){
   alert('test');
  }
});

たとえばHTML中の<a href="javascript:void(0);" onclick=test()>
のように呼び出す方法はないのでしょうか

DOMがロードされて操作可能になったタイミングで関数を実行しているのですが
外部からも利用したいと考えています

宜しくお願いします

回答の条件
  • 1人5回まで
  • 13歳以上
  • 登録:2014/08/14 20:51:59
  • 終了:2014/08/14 23:19:18

ベストアンサー

id:a-kuma3 No.1

a-kuma3回答回数4366ベストアンサー獲得回数18022014/08/14 22:55:26

たとえばHTML中の<a href="javascript:void(0);" onclick=test()>
のように呼び出す方法はないのでしょうか

ないです。
スコープってのは、そういうもの。

関数を使いまわすという意味では、外側のスコープで定義するか、

<script>
// onclick で見えてるスコープで関数を定義する
function test(){
    alert('test');
}
$(document).ready(function(){
    test();
});
</script>
<a href="javascript:void(0);" onclick="test()">

window のスコープに定義するしかないです。

<script>
$(document).ready(function(){
    // いわゆるグローバルスコープは、window の属性として見える
    window.test = function() {
        alert('test');
    }
    test();
});
</script>
<a href="javascript:void(0);" onclick="test()">
id:teioh12

a-kuma3さん

毎度ご回答頂き誠にありがとうございます。
やはり外部に定義させて読み込ませるという方法しかないのですね。
基礎学ばずに局所的に調べて開発してるのでこういったアホな質問をしてしまいました。

2014/08/14 23:19:07
id:a-kuma3

javascript は、クロージャとかもあるので、スコープは難しいです。
知ってる人だって、知らない時期を通って来たわけですから :-)

2014/08/15 00:46:09

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません