I have defined an <a>
tag with css. I'm trying to stop default stylesheet :hover
changes on the a
tag. How do I disable the hover changes on the a tag in Jquery?
Asked
Active
Viewed 1.4k times
4 Answers
13
Live demo of the following solution: http://jsbin.com/umiru
--
The easiest way I can think of is to change:
a:hover { ... }
into
a.someClass:hover { ... }
And then add/remove .someClass
via jQuery's methods:
$(this).addClass("someClass"); // activates css rules for :hover
$(this).removeClass("someClass"); // deactivates css rules for :hover

Sampson
- 265,109
- 74
- 539
- 565
-
Do you mean your stylesheet has `a:hover { color:red }` or something similar? – Sampson Jan 13 '10 at 01:12
-
zsharp - the solution I provided works. Please see the link included at the top of my solution for a demonstration. – Sampson Jan 13 '10 at 01:47
-
This a brilliant idea! Thank you! You can add !important to make sure that style styles the document. – Umut Benzer Mar 13 '12 at 13:15
6
Here is a solution without hack classes:
CSS:
a {color: blue;}
a:hover {color: red;}
jQuery (uses jQueryUI to animate color):
$('a').hover(
function() {
$(this)
.css('color','blue')
.animate({'color': 'red'}, 400);
},
function() {
$(this)
.animate({'color': 'blue'}, 400);
}
);

kingjeffrey
- 14,894
- 6
- 42
- 47
2
The easiest way would be to create a new CSS rule for the specific a tag. Something like
a.linkclass:hover {color:samecolor}
If you have to use JQuery to override the default styles, you have to manually add the css rules in the hover state, something like this:
$('a.linkclass').hover(function(){
$(this).css({'color':'samecolor'});
});
hope this help

honeybuzzer
- 139
- 4
0
Just define your CSS without a "a:hover"
a { color: #fffff }
This CSS will override the a:link, a:hover, a:visited and a:active.

Mottie
- 84,355
- 30
- 126
- 241