2011-01-05 2 views
0

ここに混乱します。下のリンクのホバーCSSを変更するにはどうすればいいですか?トグル。クラス?クラスを追加しますか?ホバー上に画像を表示したい。CSSをターゲットとするjQuery:ホバークラス

$("#menu-item-1099 a:contains('rss')").css("color", "#5d5d5d"); 

でテキストの色を変更できましたが、ホバークラスをターゲットにすることはできません。

<div id="access"> 
<div class="menu-header"> 
<ul id="menu-main-menu" class="menu"> 
<li id="menu-item-1099" class="menu-item menu-item-type-custom menu-item-1099"> 
<a href="http://mydomain.com/feed/">rss</a></li> 

答えて

2

.css()をjQueryで使用すると、実際にCSSファイルを変更したり新しいCSSルールを作成したりすることはありません。特定の要素のstyle属性(インラインCSS)にCSSを追加するだけです。

$("#menu-item-1099 a:contains('rss')").hover(function() { 
    // Hover in, show an img 
    $(this).after("<img src='blah.jpg'>"); 
    // Or alternatively 
    $(this).addClass("hasImage"); // Where there is a CSS rule for .hasImage 
}, function() { 
    // Hover out, remove the img 
    $(this).next().remove(); 
    // Or alternatively 
    $(this).removeClass("hasImage"); 
}); 
+0

+1。 Bax9コードは私のコードよりも良いです。イメージを追加するので、私のコードは単純な色を追加するので、 – AEMLoviji

+0

興味深い。多分、私がやろうとしていることをするためのより良い方法がありますか?実際にそれを追加するよりもCSSを変更するには?私は、どのようにリンクのテキスト "rss"の色を変更するには?上記のコードを動作させることはできません。私は動的に生成されたメニューを扱っていますが、ドキュメントを準備してJSを実行しても問題はありません。 – markratledge

+0

@songdogtech、私はあなたが "cssを変更する"という意味をよく分かりません。あなたがCSSファイルを変更することについて話しているなら、それは可能ですが、推奨されません。あなたのメニューが動的に生成されている場合、私の上記のコードは動作しないかもしれません。代わりに '.live'を使う必要があります。しかし、すべての後に強調表示されたリンクがある場合、生成されたすべての ''にクラスを与え、そのクラスをCSSで直接参照できないのはなぜですか? –

0

はあなたが好きな、要素に.hover使用することができます:あなたがホバーに何かをしなければならない、とホバーうちにそれを元に戻す -

だから、あなたは「ホバークラスをターゲット」することはできませんこれは

$("#menu-item-1099 a:contains('rss')").hover(function(){ 
     //change the bacjgound picture 
      $(this).addClass("all the class"); 
     }, function(){ 

        //remove it 
      $(this).removeClass("all the class"); 
      }); 

あなたはあなただけのスタイルシートでクラスを作成する必要があります)(

$("#menu-item-1099 a:contains('rss')").hover(function(){ 
      $(this).toggleClass(list the class); 
       }); 

を.toggle使用したい場合は、作りますあなたが望むイメージを背景に置き、ここに入れてください

関連する問題