0

私は連続して5つのdivを持っています。それらはすべて、ページの読み込み時に 1 つのバックグラウンドを持っています。ホバーしたdivのBGと、以前のすべての同一のdivを変更したい。どうすればいいのかわからない

div { style="background: url(images/red)"}

<div class="myDiv">One</div>
<div class="myDiv">Two<div>
<div class="myDiv">Three</div>
<div class="myDiv">Four</div>
<div class="myDiv">Five</div>

そのため、上記のdiv THREEにカーソルを合わせると、div ONE、TWO、およびTHREEの背景が青色になります。

私がした場合

$('.myDiv').hover(function(){
    $(this).prev('.myDiv').css({...});
});

それは最初の前のものにのみ影響します。誰かが私を正しい方向に向けることができますか?

4

2 に答える 2

2

Javascript は次のとおりです。

$('.myDiv').hover(function(){
    $(this).prevAll('.myDiv').andSelf().css({...});
});

また、マークアップにも間違いがあり、2 番目の div が閉じられていません。:

<div class="myDiv">One</div>
<div class="myDiv">Two</div>
<div class="myDiv">Three</div>
<div class="myDiv">Four</div>
<div class="myDiv">Five</div>

作業例: http://jsfiddle.net/snynL/

于 2012-11-16T01:06:35.237 に答える
2

kmb385 には正しい答えがあります...彼の答えを詳しく説明すると、マウスアウト時に背景の設定を解除できます。

フィドル

$('.myDiv').on({
    mouseover: function(){
    $(this).prevAll().andSelf().css("background", "red");
    },
    mouseout: function(){
    $('.myDiv').css("background", "");
    }
});
于 2012-11-16T01:29:19.793 に答える