2011-12-30 7 views
2

jQueryを学んでいるだけで、少しスクリプトを書こうとしています。基本的なHTMLコードまとめると:jquery関数のすべての非アクティブなdivを選択する方法

<ul class="boxes"> 
<li id="box1">1</li> 
<li id="box2">2</li> 
<li id="box3">3</li> 
</ul> 

を私は、能動素子のホバー効果を作成するためにjQueryを使用しています:

$(document).ready(function(){ 
$('#box2').hover(function(){ 
    // In 
    $(this).text('IN') 
}, function(){ 
    // Out 
    $(this).text('OUT') 
}) 

私は何を追加すると、他のすべてのli要素ということです吊るされていないものは消え去る。私は、 'ul'クラスの "ボックス"に隠されていない "li"をすべて対象とする$(これ)とは反対のものがあるのだろうかと思っています。

私を助けることができる誰かに感謝します! :)

答えて

1

thisの反対は.not(this)次のようになります。

$('.boxes li').not(this).fadeOut(); 

はまた、このexampleを参照してください。

+0

'stop()'がなければ、アイテムをすばやくホバリング/残して、奇妙な結果を得ることができます。 – Dutchie432

+0

こんにちはscessor、これのおかげで、私はそれが今働く方法を見ることができ、私が望むようにそれを働かせた。 :) – TheMoonMonkey

+0

@ Dutchie432:この動作は、fadeInメソッドとfadeOutメソッドのdurationパラメータが高い場合に表示されます(例のように)。私の例ではこの値は低いです(このコマンドを保存します)。 – scessor

2

はこのお試しください:

$(document).ready(function(){ 
    $('.boxes li').hover(function(){ 
     $('.boxes li').not(this).fadeOut(); 
    }, function(){ 
     $('.boxes li').not(this).fadeIn(); 
    }) 
}); 
+0

ストップ 'なし()'あなたが得ることができますいくつかの奇妙な結果が急速に浮遊/離れる アイテム。 – Dutchie432

1

これは、私があなたが達成しようとしていると思うものの少しのサンプルです。

キーは、共通のクラス(この場合はbox)を使用するために、一意のid属性値を使用しています。

WORKING DEMO:http://jsfiddle.net/gkkta/3/

$('.box').hover(function(){ 
    $('.box').stop().fadeTo(500, .5); 
    $(this).stop().fadeTo(1000, 1.0); 
}, function(){ 
    $(this).stop().fadeTo(500, .5); 
}); 
+0

クラスを使用していただきありがとうございます。 :) – TheMoonMonkey

0

他の方法があるにfadeoutallfadeinthis

$('#box2').hover(function(){ 
     $('.boxes > li').fadeTo(100,.25); 
     $(this).text('IN').fadeTo(100,1); 
    }, function(){ 
    $('.boxes > li').fadeTo(100,1); 
    $(this).text('OUT'); 
}); 

フィドル:http://jsfiddle.net/n2Znw/1/

関連する問題