jQuery实现菜单悬停为无关元素加类,移开后类无法移除的问题
修复hover后未移除类的问题
嗨,这问题很好解决!你现在的代码只处理了鼠标悬停进入菜单项时添加类的逻辑,却没写鼠标离开时移除类的部分——jQuery的.hover()方法其实支持传入两个回调函数,分别对应鼠标进入和离开的动作。
给你修正后的代码:
jQuery(document).ready(function(){ jQuery("#sfm-sidebar .sfm-menu-level-0 li a").hover( // 鼠标移入时添加hover类 function(){ jQuery("#cursor").addClass("hover"); }, // 鼠标移出时移除hover类 function(){ jQuery("#cursor").removeClass("hover"); } ); });
如果喜欢更清晰的事件绑定写法,也可以拆分写成mouseenter和mouseleave事件:
jQuery(document).ready(function(){ const menuLinks = jQuery("#sfm-sidebar .sfm-menu-level-0 li a"); const cursor = jQuery("#cursor"); menuLinks.on("mouseenter", function(){ cursor.addClass("hover"); }); menuLinks.on("mouseleave", function(){ cursor.removeClass("hover"); }); });
这样鼠标移开菜单项时,#cursor的hover类就会被自动移除啦~
内容的提问来源于stack exchange,提问作者Jacqui
相关产品推荐
相关产品推荐

