2011-01-05 41 views
0

困惑於此。改變下面鏈接的懸停CSS的最佳方式是什麼? toggle.Class? add.Class?我想在懸停上顯示圖像。我已經能夠改變文本的顏色將jQuery定位到CSS a:hover類

$("#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

當你在jQuery中使用.css(),你實際上並沒有改變CSS文件/創建新的CSS規則。您只需將CSS添加到特定元素的style屬性(內聯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 2011-01-05 05:38:34

+0

有趣。也許有更好的方法來做我想做的事情?要真正改變CSS而不是添加到它?即,如何改變鏈接中文本「rss」的顏色?我無法得到上面的代碼工作。我正在處理一個動態生成的菜單,這與運行帶準備好文檔的JS無關。 – markratledge 2011-01-06 18:37:35

+0

@songdogtech,我不確定你的意思是「改變CSS」。如果你正在談論改變CSS文件,那麼是的,這是可以做到的,但不建議。如果你的菜單是動態生成的,我上面的代碼可能不起作用,你需要使用'.live'。但是,如果你所追求的只是一個突出顯示的鏈接,爲什麼你不能給所有生成的''提供一個類,並直接在你的CSS中引用該類? – 2011-01-10 01:28:30

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"); 
      }); 
如果你想使用.toggle()

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

,你只需要在你的樣式表創建一個類

,使背景你想要的圖像,並把它放在這裏