私は多くの機能を作っています。私はこれらの関数をscript.jsファイルに入れます。しかし、これらすべての機能はすべてのページにロードされています。他のページで関数を呼び出す
私はこのような関数を作っています
$(function() {
}):
しかし、どのように私は、関数がすべてのページにロードされていないことを確認することができますか? 私は必要な機能だけを呼び出すことができますか?
私は多くの機能を作っています。私はこれらの関数をscript.jsファイルに入れます。しかし、これらすべての機能はすべてのページにロードされています。他のページで関数を呼び出す
私はこのような関数を作っています
$(function() {
}):
しかし、どのように私は、関数がすべてのページにロードされていないことを確認することができますか? 私は必要な機能だけを呼び出すことができますか?
ポールアイルランドは、その問題に対処する素晴らしい方法を持っています。あなたは基本的にこのようなあなたのページごとに構造を作成することができます
:彼の記事を参照してください
var siteNameSpace = {
homepage : {
onload : function(){
// do this stuff.
}
},
contact : {
onload : function(){
// onload stuff for contact us page
}
}
};
そして、それぞれのページのコードがでのみ発生します:
$(document).ready(siteNameSpace[ document.body.id ].onload);
そのためにはを割り当てる必要がありますあなたのページのそれぞれのbody
のタグ:
<body id="home">
<body id="contactUs">
and so on
1つの方法は、.js
ファイルをモジュールに分割し、そのページに関連するファイルのみを.js
にすることです。 jQueryので
、それはこのようなアプローチを使用することがおそらくより一般的である。
$(function() {
if (someCheck) {
// do something
}
if (someCheck) {
// do something else
}
});
someChecks
は、通常、特定の要素(if ($(someSelector).length)
)が存在することが確認されています。
しかし、あなたの質問に具体的に答えるには、関数に名前を付けて呼び出します。
$(function() {
// do foo
})
あなたは
function someName() {
// do foo
}
を持っているだろうし、あなたがsomeName()
のような関数を呼び出すことができますが、明らかにあなたは、あなたがページごとに制御できる場所に関数呼び出しを配置する必要があるだろう基礎(そのようなページの<head>
のように、または異なる.js
ファイルを含めることにより、以前の回答で説明したように。
あなたは、外部のJavaScriptファイルのいくつかのセットを作成し、それらが必要とされているどこのページに置くことができます。
また、jQueryのgetScript
methodを使用してスクリプトをロードすることもできます。
$.getScript('url of ext js', function(data, textStatus) {
});
私は本当にあなたが正確にするために求めているものを理解することはできませんが、多分私はあなたのためにいくつかのことをクリアすることができます。
変数(関数)が別のファイルで宣言されているかどうかは関係ありません。問題は何ですか?スコープが宣言されています。
つまり、関数が異なるファイル内にあっても、グローバル(クロージャ/関数/オブジェクト内ではない)として宣言されている場合は、それらは可視であり、どこからでも呼び出すことができます。グローバル関数の
例:
function foo() {/*...*/}
var bar = function(){/*...*/}
window.func = function(){/*...*/}
あなたが「隠す」機能、異なるスコープからそれらにアクセスできなくなってしたい場合は、クロージャを使用する必要があります。閉鎖で定義された関数の
例:オーバー
function initialise {
var foo = function(){}
function bar(){}
alert(typeof foo); // function
alert(typeof bar); // function
// foo & bar are visiblehere
}
alert(typeof foo); // undefined
alert(typeof bar); // undefined
// foo & bar are undefined here
より、あなたがそれらにアクセスできないように一度だけ、完全にそれらを実行したい場合、あなたは自己実行機能でそれらをラップすることができます:
(function(){
function bar(){}
alert(typeof bar);// function
// bar is visible here
})();
// bar is undefined here
私はあなたの質問に答えたかどうか分かりませんが、これが役立つと願っています。
関数に名前を付けてから、特定のイベント、たとえばボタンのクリック、ページの読み込みなどで関数を呼び出すことを確認してください。 –
特定のページの範囲外の関数を定義するか、負荷機能かどうかは... – Dev