【问题标题】:Why hover() does not working on added class using jquery? [duplicate]为什么 hover() 不能使用 jquery 处理添加的类? [复制]
【发布时间】:2016-04-19 11:20:05
【问题描述】:

我正在尝试延迟动画,对于这个任务,我在 500 毫秒后添加 .startAnimation 类用于动画。

HTML

<div class="layout">Hover It</div>
<div class="hoverDiv"></div> 

JS

setTimeout(function(){
            $(".layout").addClass('startAnimation');
        }, 500);
$('.hoverDiv').hide();
$('.startAnimation').hover(function(){
    $('.hoverDiv').show();
});

但问题是 hover() 不能与添加的类 .startAnimation 一起使用,但它与位于同一 div 上的 .layout 类一起使用。我检查了.startAnimation 类在 500 毫秒后正确添加。任何人都可以指导我解决这个问题,我可以解决它。我会很感激的。

这里是参考Demo

【问题讨论】:

  • 使用事件委托。
  • mouseentermouseleave 事件使用事件委托
  • 感谢您的指导
  • 你应该使用“on or live”方法动态创建的元素。

标签: javascript jquery


【解决方案1】:

将事件委托与mouseentermouseleave 事件一起使用。

$(document).on('mouseenter mouseleave', '.startAnimation', function(){
    $('.hoverDiv').toggle();
});

DEMO

【讨论】:

  • Hover 不是事件,它用于添加 mouseenter 和 mouseleave 处理程序
  • @ArunPJohny 我改了。
  • @RejithRKrishnan 感谢分享知识。
【解决方案2】:

使用鼠标悬停事件而不是悬停。它会起作用的。

$(document).on('mouseover', '.startAnimation', function(){
    $('.hoverDiv').show();
});

【讨论】:

    猜你喜欢
    • 2014-11-14
    • 1970-01-01
    • 2012-01-28
    相关资源
    最近更新 更多