こんにちは私はjQueryのdocument.ready関数でラップされたいくつかのカスタム関数を持っています。これらの関数のほとんどはその関数内から利用されて機能しますが、グローバルスコープからこれに含まれる関数にアクセスしたい場合があります。これどうやってするの?次のようなことはできますか:jQueryReadyScope.myFunctionName('paramaters');
どうもありがとうございます。
こんにちは私はjQueryのdocument.ready関数でラップされたいくつかのカスタム関数を持っています。これらの関数のほとんどはその関数内から利用されて機能しますが、グローバルスコープからこれに含まれる関数にアクセスしたい場合があります。これどうやってするの?次のようなことはできますか:jQueryReadyScope.myFunctionName('paramaters');
どうもありがとうございます。
いいえ。ただし、関数に名前を付けて、次のように渡すことができます.ready()
。
var myFunctionName = function (params) {
// do things
}
// pass as callback to ready function
jQuery(document).ready(myFunctionName);
// access directly like any other function:
myFunctionName('paramaters');
これはスコープの問題であり、必要なのは名前空間を指定することだけです。この場合、グローバルに話しているので、ウィンドウを使用します。
window.myFunction = function() { ... stuff }
グローバルスコープからアクセスするには、ドキュメントの外部で宣言するか、次のプロパティとして割り当てることにより、グローバル変数に割り当てる必要がありますwindow
。
var yourGlobalFunction1 = function() { ... }
$(document).ready(function() {
function privateFunction() { ... }
window.yourGlobalFunction2 = function() { ... };
yourGlobalFunction1();
privateFunction();
yourGlobalFunction2();
});
yourGlobalFunction1();
// and then at some later point AFTER the document ready has run,
// e.g., in response to some event:
$("#someelement").click(function() {
yourGlobalFunction2();
});