2011-07-15 14 views
0

のjqueryの問題次のコードでわかるように、背景は変更されずに境界が変更されます。 問題はデフォルトのバックグラウンド値です。 この問題を解決する方法addClass()&toggleClass()&default CSS値

jqueryの:

$(document).ready(function() { 
    $('input').bind('focus blur', function() { 
     $(this).toggleClass('focus'); 
    }); 
}); 

CSS:

input{background-color: blue;} 
focus{background-color: red; border: 1px solid blue} 

HTML:

<input> 

答えて

2

inputに定義されたbackgroundは、その優先順位のタグに適用されます。 focusはクラス、inputはタグです。

てみ設定:

input{ 
    background-color: blue; 
} 
.focus{ 
    background-color: red; !important 
    border: 1px solid blue; 
} 
+0

大歓迎です!私の答えがあなたのニーズに合っていれば、左側のチェックマークをクリックしてください。あなたはコミュニティです、[FAQ](http://stackoverflow.com/faq) –

1

CSSが正しくありません。フォーカスのためにドットが欠けています。

input{background-color: blue;} 
.focus{background-color: red !important; border: 1px solid blue;} 
+0

+1を見てください。しかし、国境がどのように変わっているか説明してください。 – Lourens

+1

ありがとう、しかし、私はstackoverflow textareaでドットを書くことを忘れてしまった。 – Masoud

+0

フォーカスクラスが適用されている場合は実際に動作するはずです。フォーカスクラスで背景色を重視するようにしてください。とにかく私の編集された答えをチェックしてください。 – ShankarSangoli

1

トライ書き込み:

代わり
background-color: red !important; 

background-color: red; 

また、あなたはjqueryのなしでこれを書くことができます。なぜあなたは次のように書きません:

input{background-color: blue;} 
input:focus{background-color: red; border: 1px solid blue} 
+1

そしてうん、ヴィンスはそうです、フォーカスはクラスなので、 '.focus'と書く必要があります –

+0

:フォーカスクラスはパフォーマンスが良く、コーディングが劣ります。 しかし、IE8の以前のバージョンでは、次のものはサポートされていません:focus擬似クラス – Masoud