2 つのスクリプトにリンクする HTML があるとします。
...
<script type="text/javascript" src="general.js"></script>
<script type="text/javascript" src="[pagename]_specific.js"></script>
...
2 つのスクリプトのそれぞれに、独自の jQuery が.ready()
定義されています。
general.js:
jQuery(function() {
var foo;
$('#btn').click(function() {alert(foo())});
}
home_specific.js:「[ページ名]_specific.js」の例
jQuery(function() {
foo = function() {alert("hello")};
}
#btn
ボタン要素はどこにありますか。
「general.js」は複数のページで共有されるスクリプトで、各ページには割り当てられた関数の動作を定義するための専用の「[pagename]_specific.js」がありますfoo
。
クリックする#btn
と、「こんにちは」ダイアログが表示されると思っていましたが、代わりにUncaught TypeError: undefined is not a function
クロム開発者ツールが表示されました。この SO questionから、2 つ.ready()
に 2 つの別々のイベント ハンドラーがあるためだと理解しています。
質問:別の無名関数を定義する代わりに、.ready()
"[pagename]_specific.js" を "general.js" のイベント ハンドラーに追加する方法はありますか?.ready()