jQuery 悬停、mouseenter、mouseleave 状态(不透明度动画)

标签 jquery mouseenter mouseleave jquery-hover

我试图理解它们,但似乎无法理解。所以我想是否有人可以帮助我更好地理解它们是如何工作的。

当我添加悬停状态时,无论鼠标位于元素上还是当鼠标离开元素时,它都会产生不透明效果...它会重复...

mouseenter&leave 工作正常,但我不知道如何告诉他一次 $(this),所以我做了一些东西并且它有效,但也许有人会告诉我什么是正确的和更好的方法。

$("nav.topMenu-left li, nav.topMenu-right li").on('mouseenter', function() {
    $(this).animate({'opacity': '0.5'}, 100);
});

$("nav.topMenu-left li, nav.topMenu-right li").on('mouseleave', function() {
    $(this).animate({'opacity': '1'}, 100);
});

最佳答案

您可以组合事件处理程序:

$("nav.topMenu-left li, nav.topMenu-right li").on('mouseenter mouseleave', function(e) {
   if (e.type === 'mouseenter')
      $(this).animate({'opacity': '0.5'}, 100);
   else 
      $(this).animate({'opacity': '1'}, 100);   
});

或者,由于您没有委托(delegate)事件,因此您可以使用 hover 方法:

$("nav.topMenu-left li, nav.topMenu-right li").hover(function(){
    $(this).animate({'opacity': '0.5'}, 100);
}, function(){
    $(this).animate({'opacity': '1'}, 100);   
})

关于jQuery 悬停、mouseenter、mouseleave 状态(不透明度动画),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12727561/

相关文章:

javascript - 为什么 'mouseenter' 事件只适用于空格键的第一个元素 #each 迭代?

javascript - 使用普通 JavaScript 的 mouseenter 委托(delegate)?

jquery - 当我选择一个 select 选项时触发 mouseleave 事件,尽管它不在该区域之外

c# - 如果对象被处理,则阻止 MouseLeave 触发器

javascript - 计算自动滚动的div高度

jquery - 从当前月份中删除过去的日期和下个月的日期

javascript - 将数据推送到客户端

javascript - 如果输入不为空则显示按钮

javascript - 使用 jQuery 检测第一个焦点/触摸到 HTML 表单字段

Jquery:如果 mouseleave = true 则执行此操作