在jQuery中,什么是在mouseover上添加类并在mouseout上删除它的最佳方法?

Ben*_*Lee 3 javascript jquery mouseover hover mouseout

这有jQuery快捷方式吗?

$(element).on("mouseover", function() {
    $(this).addClass("hover");
}).on("mouseout", function() {
    $(this).removeClass("hover");
});
Run Code Online (Sandbox Code Playgroud)

我看到在jQuery的文档称为方法hover(),但似乎对事件绑定mouseentermouseleave(我应该使用这些事件,而不是mouseovermouseout?)

dkn*_*ack 10

描述

您可以使用jQuery的hover()方法.

看看样本和这个jsFiddle演示

样品

$(elem).hover(function(ev) {
    $(this).addClass('hover');
}, function(ev) {
    $(this).removeClass('hover');
});
Run Code Online (Sandbox Code Playgroud)

更多信息


lon*_*day 6

删除代码重复的最简单方法是将一个参数传递给hover并使用toggleClass:

$(elem).hover(function() {
    $(this).toggleClass('hover');
});
Run Code Online (Sandbox Code Playgroud)

  • 我投了这个和dknaack的答案 - 是的,如果你不了解或控制你的完整场景,那么切换状态可能会失去同步.但如果你是,它很漂亮.但另一方面,3线对5线...你总是可以用dknaack的安全路线. (3认同)