为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

四季花海 2019-10-18 10:35:24
我试图阻止浏览器:hover通过JavaScript 使用CSS 的效果。我在CSS中设置了a和a: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;,但是它不起作用。这是我的问题的一个示例:http : //jsfiddle.net/4rEzz/。链接应该淡出而不会变灰。如fudgey所述,一种解决方法是使用重置悬浮样式,.css()但是我必须覆盖CSS中指定的每个属性(请参见http://jsfiddle.net/raPeX/1/)。我正在寻找一个通用的解决方案。有谁知道如何做到这一点?PS:我不想覆盖为悬停设置的所有样式。
查看完整描述

3 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

恐怕没有纯粹的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');

)


查看完整回答
反对 回复 2019-10-18
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

使用仅分配了悬停的第二类:


的HTML


 <a class="myclass myclass_hover" href="#">My anchor</a>

的CSS


 .myclass { 

   /* all anchor styles */

 }

 .myclass_hover:hover {

   /* example color */

   color:#00A;

 }

现在,您可以使用Jquery删除该类,例如,如果元素已被单击:


JQUERY


 $('.myclass').click( function(e) {

    e.preventDefault();

    $(this).removeClass('myclass_hover');

 });

希望这个答案有帮助。


查看完整回答
反对 回复 2019-10-18
  • 3 回答
  • 0 关注
  • 4500 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信