2010-01-13 52 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