0

jqueryドキュメントレディクロージャー内にある関数を実行したい。しかし、私はそれをグローバルな文脈から実行したいと思います。

例えば

$("document").ready(function () {
    function myFunction() {
        alert("test");
    }
});

ドキュメントの準備ができたクロージャーの中に入るために、私が書くことができるある種の「パス」構文はありますか?

例:これがいくつかの擬似コードです(私はこのsynatxを作成しました):

document.ready.myFunction();

なぜ私がこれをやりたいのか疑問に思われるかもしれません。その理由は、「準備完了」関数クロージャ内にあるjavascriptコンソール(たとえば、IE開発者ツールバーのコンソール/ firebugなど)から関数を実行できるようにするためです。

4

1 に答える 1

2

要するに、アクセスできないだけです...これはクロージャのコア機能の1つです。外部で利用できるようにする場合は、次のように外部で宣言する必要があります。

function myFunction() {
    alert("test");
}
$(document).ready(function () {
  //something..
});

または、内部のグローバル変数として定義します(ただし、他の参照が行われていない限り、これにはあまり意味がありません)

$(document).ready(function () {
    myFunction = function() {
        alert("test");
    }
});

関数を定義して実行するにはdocument.ready、次のように簡単にできます。

function myFunction() {
    alert("test");
}
$(myFunction);

これにより、アクセス可能になり、一度だけ実行されdocument.readyます。それが目的であるかどうかはわかりませんが、オプションです。

于 2010-09-10T11:13:28.820 に答える