2012-02-23 15 views
4

を設定するとき、私はdiv上でホバリングにaddClassにはjQueryを使用しています...しかし、背景色は変更されません。以前はCSSの背景色が割り当てられていたからだと思います。ホバリング時にhoverクラスのその他のプロパティ(枠線)が表示されるので、addClassが機能しています。jQueryの/ CSSの優先順位/オーバーライド背景色に

はどのように/私はこの仕事をしなければならないことができますか?

jQueryの

$('.pick1-box').hover( 
    -> $(this).addClass('hover') 
    -> $(this).removeClass('hover') 
    ) 

CSS

.pick1-box, .pick2-box { 
    ... 
    background: #eee; 
    ... 
} 

.hover { 
    background-color: yellow; 
    border: 1px solid red; 
} 

HTML

... 
<li class='nominee clearfix' id='146'> 
    <div class='candidate'> 
    <img alt="Enders" height="80" src="/assets/25803sm.jpg" /> 
    Dick Waddington 
    </div> 
    <div class='pick-boxes'> 
    <div class='pick1-box'> 
     1 
    </div> 
    <div class='pick2-box'> 
     2 
    </div> 
    </div> 
</li> 
... 
+1

あなたがクラスを追加して、すぐにそれを削除しますか?ブラウザは、すでに削除される前に、追加されているクラスからの変更を描画する時間がない可能性があります。 –

+0

@Marc B:それは[CoffeeScriptの構文](http://coffeescript.org#functions)です。 – BoltClock

+0

見出しは「jqueryのを」と言うとJS-無効な構文、お奨め不思議... –

答えて

1

それはあなたがjQueryとコードをロードしているかによって異なりますが、この試してみてください。

.hover { 
    background-color: yellow !important; 
    border: 1px solid red; 
} 
+0

なぜこれがダウン投票されたのか分かりませんか?出来た! – Meltemi

+2

私のdownvoteではありませんが、これは一般的に悪い習慣と考えられています。 「重要」は実際に最後の手段としてのみ使用されるべきです。それはしばしば、悪いデザインの兆候です。 –

+1

はいそうです。しかし、CSSの宣言の正しい順序を知らなくても、それを解決する最も簡単な方法のようでした。とにかくできるだけ避けてください。 – jribeiro

0

あなたは第二のルールは、より具体的にすることができます:

.pick1-box.hover, .pick2-box.hover { 
    background-color: yellow; 
    border: 1px solid red; 
} 

css specificity

これはあなたの.hover CSSが実際にこれらのような従来.pick1-boxルールに発生することを前提として同等の特異性を有し、後に発生するものがあります優先順位。

+0

変更はありません。境界線は赤色に変わりますが、背景はまだ灰色です(#eee) – Meltemi

+0

特有のリンクに感謝します! – Meltemi

0

あなたは、並べ替えをしようとしたり、CSSへの重要なを追加するか、のような何かができることができます:要素のスタイルが優先

$('.pick1-box').hover($(this).attr('style', 'background-color: yellow;border: 1px solid red;'),$(this).removeAttr('style')); 

以来。スタイルが影響を受け要素のstyle属性で上書きされていますので、あなたが述べてきたように

+0

重要な作業! – Meltemi

0
+0

私は混乱していると思う。 **再:#1はCSSを直接​​変更しません:**しかし、私は、この場合( '$(this)).css( 'background-color'、 'yellow' '働いた)。私はクラスタグを追加するだけです。 – Meltemi

+0

Hmm。私は間違っているはずです。ごめんなさい。 :) –

関連する問題