移除/取消绑定hover在锚点上
HTML
Home
CSS
a { color: blue; } a:hover { color: red; }
题
如何通过jQuery删除hover?
我试过了: $('a').unbind('hover');
和$('a').unbind('mouseenter mouseleave')
我开始想为什么它不起作用,这不是hover()
?
由于a:hover
不是锚标记上的绑定事件,并且只是一个伪类,因此您不会成功解除.hover()事件的绑定。
如果你想改变行为,那么你可以做两件事
-
删除
a:hover
样式 -
在锚标记上绑定hover事件并相应地设置css。
不。这是一个CSS规则,而不是JavaScript事件。
更改颜色的最简单方法是通过更强大的CSS规则,例如:
a.NoHover:hover { color: blue; }
要么
body a:hover { color: blue; }
您可以添加/删除类并使用JQuery进行相应的操作。 因此,您应该为正常状态和hover状态创建类。 例如,您可以从元素中删除样式,如下所示:
$('a').mouseover(function(){ $(this).removeClass(); });
但我建议您使用以下方法实际添加和删除类:
addClass()
removeClass()
如果它唯一的颜色你可能会有所帮助。
$('a').each(function() { var $this = $(this); $this.css('color', $this.css('color')); });
元素的style
属性将覆盖任何CSS选择器中设置的属性。 该理论已经过测试并且工作正常。 这个插件将读取任意css属性并将它们设置回来因此“粘贴”它们。
$.fn.stickCss = function(props) { var stick = (props || '').split(/\s+/); return this.each(function() { var $this = $(this); $.each(stick, function(i, prop) { $this.css(prop, $this.css(prop)); }); }); }; // example usage: $('a').stickCss('color background-color margin padding');