2つのスクリプトにリンクするHTMLがあるとします。
...
<script type="text/javascript" src="general.js"></script>
<script type="text/javascript" src="specific.js"></script>
...
2つのスクリプトには、それぞれ独自のjQueryが.ready()
定義されています。
general.js:
jQuery(function() {
var foo;
$('#btn').click(function() {alert(foo())});
}
Specific.js:
jQuery(function() {
foo = function() {alert("hello")};
$('#btn').click(function() {foo()});
}
ここ#btn
で、はボタン要素です。
クリックする#btn
と、「こんにちは」ダイアログが表示されることを期待していましたが、代わりにUncaught TypeError: undefined is not a function
Chrome開発ツールを使用しました。
私自身の理解では、イベントfoo
によってアクセスされる前に、関数が未定義ではなく、すでに割り当てられている必要があります。click
明らかに、私の理解は正しくありません。なぜそれがそのように振る舞うのか誰かが私に説明してもらえますか?