2010-01-13 89 views
10

我用css定義了一個<a>標籤。我試圖停止對a標記的默認樣式表:hover更改。如何禁用Jquery中標籤上的懸停更改?用jQuery覆蓋a:hover?

回答

13

以下解決方案的現場演示:http://jsbin.com/umiru

-

我能想到的最簡單的方法是改變:

a:hover { ... } 

a.someClass:hover { ... } 

然後通過jQuery的方法添加/刪除.someClass

$(this).addClass("someClass"); // activates css rules for :hover 
$(this).removeClass("someClass"); // deactivates css rules for :hover 
+1

試過,不行 – zsharp 2010-01-13 01:11:49

+0

你的意思是你的樣式表有'a:hove r {color:red}'或類似的東西? – Sampson 2010-01-13 01:12:23

+0

是這就是它hhh – zsharp 2010-01-13 01:13:34

2

最簡單的方法是爲特定的標籤創建一個新的CSS規則。喜歡的東西

a.linkclass:hover {color:samecolor} 

如果你有使用jQuery覆蓋默認樣式,您必須手動添加的CSS規則懸停狀態,這樣的事情:

$('a.linkclass').hover(function(){ 
    $(this).css({'color':'samecolor'}); 
}); 

希望這有助於

0

只要定義你的CSS無 「:懸停」

a { color: #fffff } 

這將CSS覆蓋a:鏈接,a:懸停,a:visited和a:active。

6

這裏是沒有的黑客類的解決方案:

CSS:

a {color: blue;} 
a:hover {color: red;} 

的jQuery(使用jQueryUI動畫顏色):

$('a').hover( 
    function() { 
    $(this) 
     .css('color','blue') 
     .animate({'color': 'red'}, 400); 
    }, 
    function() { 
    $(this) 
     .animate({'color': 'blue'}, 400); 
    } 
); 

demo