2012-03-15 5 views
0

変数を使用してjQueryコード内の複数のセレクタをキャッシュしたいとします。これをjQueryの変数に追加する

私の変数に 'this'キーワードを正しく追加する方法がわからないので、私はちょっとした壁にぶつかったようです。たとえば、次のように定義された変数があります。

(function($){ var dropNav = $('nav ul li, span.arrow'); var dropDownNav = $('div.dropDownNav,div.dropDownNavTwo,div.dropDownNavThree,div.dropDownNavFour,u‌​l.dropNav').hide(); dropNav.hover(function(){ $('div.dropDownNav,div.dropDownNavTwo,div.dropDownNavThree,div.dropDownNavFour,‌​ul.dropNav',this).show(); },function(){ $('div.dropDownNav,div.dropDownNavTwo,div.dropDownNavThree,div.dropDownNavFou‌​r,ul.dropNav',this).hide(); return false }); })(jQuery); 

私は、個々のナビゲーション項目をターゲットに「この」キーワードと変数「をdropDownNav」を使用したいのナビゲーション項目を表示し、非表示にするには、これを使うことにしたよう。

どうすればいいですか?

+0

私は申し訳ありませんが、質問を理解していない:あなたが使用したい意味ですか 'これはDOM要素ですが、 'this' DOM要素の下にある要素だけを見つけるセレクタのルート要素ですか?そしてセレクタを一度だけ生成し、毎回これに 'this'を再度適用したいのですか? (実際にはパフォーマンス上の問題ですか?) – Rup

+0

特に、他の変数ではなく 'this'を使用したい理由を具体的に説明してください。 – Alnitak

答えて

0

あなたは変数にjQueryのコレクションを割り当て、例cache.forとしてそれを使用することができます。

var dropDownNav = $('div.dropDownNav,div.dropDownNavTwo,ul.dropNav'); 
dropDownNav.hide(); 
dropDownNav.show(); 

あなたは、イベントハンドラをアタッチするキャッシュされた変数を使用することができます。

私はこれではなく、あなたがこれを行うているもので...あなたが後にあるかと思い
dropDownNav.click(function(){ 
    //here this refers to the clicked element 
    $(this).hide(); 
}); 
0

var dropDownNav = $('div.dropDownNav,div.dropDownNavTwo,ul.dropNav'); //hide these in the css 

dropDownNav.hover(
function(){ //onhover 
$(this).show(); 
}, 
function(){ //mouse moves off 
$(this).hide(); 
}); 
+0

私はこの解決法を試してみることができません。どのようなアイデアはなぜですか? – webworker

+0

あなたはページのhtmlの例を提供できますか?私はdiv.dropDownNav、div.dropDownNavTwo、ul.dropNavが何がうまくいかないと言うのが難しいのか分かりません –

+0

これは私の現在の(幾分乱雑な)jsコードのようです 'code' (function($) {drop_dropNav = $( 'div.dropDownNav、div.dropDownNavTho、div.dropDownNavThree、div.dropDownNavFour、ul.dropNav')。hide({{div {}}}} { ); dropNav.hover(関数(){ \t \t \t $( 'div.dropDownNav、div.dropDownNavTwo、div.dropDownNavThree、div.dropDownNavFour、ul.dropNav'、この).SHOW(); \t \t}、fu nuction(){ \t \t \t $( 'div.dropDownNav、div.dropDownNavTwo、div.dropDownNavThree、div.dropDownNavFour、ul.dropNav'、this).hide(); \t \t return false \t}); })(jQuery); 'code' – webworker

関連する問題