2011-02-08 15 views
2

私がデザインjqueryのcss toggleClass?

を切り替えたい
/* Heart sign */ 
.fav { 
    margin-left: 0px; 
    color: #0099CC; 
    padding-left: 20px; 
    padding-right: 4px; 
    padding-bottom: 4px; 
    -moz-border-radius: 5px; 
    border-radius: 5px; 
    background: url(../images/heart-icons.png) no-repeat 4px 4px; 
} 

fav:hover { 
    cursor: pointer; 
    margin-left: -1px; 
    margin-right: -1px; 
    background-color: #EDEDED; 
    border: 1px solid #999999; 
    background: url(../images/heart-icons.png) no-repeat 4px -13px #EDEDED; 
} 

jqueryの:

$('.fav').live('click', function(e){ 

    $(this).toggleClass('fav:hover'); 

    }); 

が、これは動作していません! Javascriptをせずに任意のヘルプしてください

+0

私はfavを与えようと考えていました:jqueryが知っているように別の名前をホバーしていますが、ホバー効果を最初から失うかもしれませんが、私が望むのは、ユーザーが.favをクリックしたとき、理にかなっている。 – getaway

答えて

3

おそらく、重複している必要がありますね。ホバーを保持したまま、同じスタイルを与える別のクラスを追加します。ホバーし、そのクラスを切り替えます。

神の祝福!

+2

複製する必要はありません。別のクラス名を追加することができます。fav:hover –

4

ソリューション:

.fav:hover, .fav:active { 
    ... 
} 

はまた、私は.favを固定していることに注意してください。

+0

リンク上で使用していますか?私はこれがリンク以外の要素に対してクロスブラウザー互換であるとは思わない。 –

3

トリニダードと同じように、複製は必要ですが、貼り付けは不要です。ただ、この操作を行います。

/* Heart sign */ 
.fav { 
    margin-left: 0px; 
    color: #0099CC; 
    padding-left: 20px; 
    padding-right: 4px; 
    padding-bottom: 4px; 
    -moz-border-radius: 5px; 
    border-radius: 5px; 
    background: url(../images/heart-icons.png) no-repeat 4px 4px; 
} 

.fav:hover, 
.fav-clicked { 
    cursor: pointer; 
    margin-left: -1px; 
    margin-right: -1px; 
    background-color: #EDEDED; 
    border: 1px solid #999999; 
    background: url(../images/heart-icons.png) no-repeat 4px -13px #EDEDED; 
} 

が、あなたはjqueryの中でそれを設定することができます。

この順番にあなたのdivをする(またはします(単にクリックされたため、より意味的な名前を考えます) )FAVとどんなHTML要素は次のようになります。

<div class="fav"> <-- before clicking 

クリックし

<div class="fav fav-clicked"> 

クリック

<div class="fav"> 

あなたのfavクリックした項目にいくつかのAJAXリクエストを行う必要がある場合は、単にによってあなたのfavクリックしたアイテムにアクセス:まず

$('.fav-clicked') 
+0

答えがありがとう、どういうトグルが使われているのか、どのようにすればいいのか、別のAjaxリクエストにそれぞれのアクションを送ることができます。 – getaway

+0

これはCSSを実際に知っている人がやる方法です。私はまだ過去の時代です。 = P – Trinidad

+0

あなたは何を意味するのか分かりませんが、toggleclassメソッドは、 "fav"クラスを持つdivに "fav-clicked"クラスを追加します(もしそれがない場合)それを持っています。病気が私の答えをより明確に更新する – corroded

3

あなたのCSSには間違いがあります。 fav:hover.fav:hover(期間に注意してください)です。

第2に、あなたはあなたがそれを持っているのとまったく同じことをすることはできないと思います。代わりにあなたがあなたのCSSを変更することができます。

.fav:hover, .fav_hover { 

そしてへのあなたのJSを変更します。

$(this).toggleClass('fav_hover'); 

私はあなたがホバー擬似クラスを使用するようにjQueryを伝えることができるとは思いません。