微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以通过JavaScript禁用CSS:hover效果吗?

如何解决我可以通过JavaScript禁用CSS:hover效果吗?

恐怕没有纯粹的JavaScript通用解决方案。JavaScript无法关闭CSS :hover状态本身。

您可以尝试以下替代解决方法。如果您不介意在HTML和CSS中多花钱,那么您不必通过JavaScript手动重置每个CSS属性

的HTML

<body class="nojQuery">

CSS

/* Limit the hover styles in your CSS so that they only apply when the nojQuery 
class is present */

body.nojQuery ul#mainFilter a:hover {
    /* css-only hover styles go here */
}

JavaScript

// When jQuery kicks in, remove the nojQuery class from the <body> element, thus
// making the CSS hover styles disappear.

$(function(){}
    $('body').removeClass('nojQuery');
)

解决方法

我试图阻止浏览器:hover通过JavaScript 使用CSS 的效果。

我在CSS中设置了aa:hover样式,因为如果JS不可用,我希望获得悬浮效果。但是,如果 可用的JS
,我想用更平滑的效果覆盖CSS悬停效果(例如,使用jQuery color插件)。

我尝试了这个:

$("ul#mainFilter a").hover(
     function(e){ e.preventDefault(); ...do my stuff... },function(e){ e.preventDefault(); ...do my stuff... });

我也尝试过使用return false;,但是它不起作用。

如fudgey所述,一种解决方法是使用重置悬浮样式,.css()但我必须覆盖CSS中指定的每个属性。我正在寻找一个通用的解决方案。

有谁知道如何做到这一点?

PS:我不想覆盖为悬停设置的所有样式。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。