2011-01-16 22 views
0

jQueryにグローバル変数を宣言する方法はありますか?jQuery:グローバル変数名前空間問題

確かに、私はグローバル変数を平易な古いJavaScriptで宣言できますが、windowの名前空間に入ります。たとえば、documentという名前の変数がある場合は、documentというオブジェクトを必ず上書きします(window)。

jQueryには、オブジェクトを名前で保存できるハッシュテーブルがありますか?

ありがとうございました。

答えて

4

jQueryをなぜ使いたいのかわかりませんか?

var namespace = { 
    document : "Foo" 
}; 

何らかの理由でjQueryを使用する必要がある場合は、具体的に説明してください。

+0

私はJavaScriptを使用すると、私はjQueryのはいつものような解決策がある可能性があります考え出した独自の名前空間でグローバル変数を定義できていないという事実を知っていました。 :D –

+0

私はそこであなたを誤解するかもしれませんが、私の例の変数 'document'は、名前空間' namespace'を通してグローバルに利用できるようになりませんか? – polarblau

+0

そうです。なぜjQueryを使いたいのかという疑問に答えるだけでした。 –

2

もちろん可能です。ネームスペースをオブジェクトとして作成し、それをjQuery関数にアタッチします。

ここでは、作業を実行するための自動実行の無名関数を作成しました。次に、この関数内の名前空間に他のプロパティと関数を追加できます。また、他の誰かが$の名前を変更するという問題を回避できます。これが行われた後

あなたはjQuery.myNamespace

2

としてあなたの名前空間を参照することができ、変数は多分異なるルーチンで、後に使用される要素に関連付けるものです場合は、jQueryの「データ」を使用することができますそれを保存する方法。

: 
    : 

// Save original HTML content. 

var old_html = $('#box').html(); 
$('#box').data({originalContent: old_html}); 

// Replace with new content. 

$('#box').empty().html(new_html); 

    : 

// Restore original content (maybe in a different function). 

var orig_html = $('#box').data('originalContent'); 
$('#box').empty().html(orig_html); 

    : 

私はこれが役に立ちそうです。

よろしく ニール

関連する問題