我偷了一个小的 jQuery 脚本来使同一页面上的导航链接平滑滚动并做了一些小改动。
到目前为止它工作正常,但是当单击链接时,悬停事件的 CSS 没有被删除,文本仍然带有下划线。现在我认为这与 preventDefault 函数有关,该函数执行其名称所暗示的内容并防止默认行为。
鼠标再次离开链接后如何去掉hover伪类?
$(document).ready(function ()
{
$('a.smooth').click( function (e)
{
e.preventDefault();
var target = this.hash,
$target = $(target);
$('html, body').stop().animate({
'scrollTop': ($target.offset().top - 100)
}, 900, 'swing', function ()
{
window.location.hash = target;
});
});
});
编辑:
我刚刚发现了问题 - 我将 a:active
设置为 text-decoration: underline
。
请参阅我的 fiddle 以供引用: http://jsfiddle.net/2zcNt/
抱歉,这太明显了。我想我需要睡一觉。
最佳答案
我的猜测是 :visited
伪类的样式带有下划线。您可以通过以下方式更改此设置:
a:visited{
text-decoration: none;
}
编辑:
在您发布 JSFiddle 之后,我发现问题实际上出在您将 h1 嵌入到 anchor 中。您应该将 anchor 标记嵌入标题中。
已编辑 JSFiddle .请注意 CSS 和以前一样。
关于javascript - onClick 函数删除 :hover pseudo class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22960824/