0

私はこの機能を持っています:

function createElement() {
    var element1 = document.createElement("div");
    element1.id = "el1";
    //...
}

問題は、別の関数を作成すると、たとえば、新しい関数がスコープ外であるため、新しい関数内からeditElement()アクセスできないことです。element1

これらの関数の外で宣言することもできelement1ますが、問題はelement1常に宣言されることです。creadeElement()ただし、ユーザーがボタンを押して呼び出された場合にのみ、要素を作成する必要がある場合があります。システム リソースを節約document.createElement("div")し、本当に必要なときにだけ呼び出したいのですが、複数の関数内からアクセスする必要もあります。それを行う方法はありますか?

4

3 に答える 3

0

新しい要素をwindowに割り当てるだけで、グローバルスコープで使用できるようになります

function createElement() {
    window.element1 = document.createElement("div"); //Meke new element global.
    element1.id = "el1";
}

function useElement() {
    //now you can use element1 directly. as it is inside the global scope.
}
于 2013-10-02T20:34:23.197 に答える
0

代わりに、次のようにします。

var element1 = null;
function createElement() {
    element1 = document.createElement("div");
    element1.id = "el1";
    //...
}

function useElement() {
    if(!element1)createElement()
    //...
}

これにより、要素は createElement 関数の外部で使用できるようになりますが、必要になるまで要素は作成されません。

于 2013-10-02T20:15:53.023 に答える