Javascript 动态内容鼠标悬停

Javascript 动态内容鼠标悬停,javascript,jquery,css,mouseevent,Javascript,Jquery,Css,Mouseevent,我有一个动态生成的html内容:div和class='dynamicWrap'。我需要在该元素上处理鼠标悬停: $(document).on('mouseover', '.dynamicWrap', function() { console.log('test'); }); 问题是我看到“test”200次(我有200个div,使用dynamicWrapclass)。对于我悬停的确切div,如何仅处理一个事件 $(document).on('DOMNodeIns

我有一个动态生成的html内容:div和
class='dynamicWrap'
。我需要在该元素上处理鼠标悬停:

    $(document).on('mouseover', '.dynamicWrap', function() {
        console.log('test');
    });
问题是我看到“test”200次(我有200个div,使用
dynamicWrap
class)。对于我悬停的确切div,如何仅处理一个事件

$(document).on('DOMNodeInserted', function(e) {
    if ($(e.target).hasClass('dynamicWrap')) {
        $(e.target).mouseover(function() {
            console.log('test');
        });
    }
});

请注意,在开始动态添加新div之前,需要运行此命令。

这将在悬停时解除鼠标悬停事件的绑定:

$(".dynamicWrap").one('mouseover', function() {

//Function content here.
alert("I've been hovered! Only happen once!")

}); 
$(document).on('mouseover', '.dynamicWrap', function() {
    console.log('test');
    $(this).off('mouseover');
});

您需要使用
mouseenter
事件,而不是
mouseover
。它会检测鼠标何时进入元素(使用mouseleave来检测何时退出元素)。如果我没弄错,你是想让悬停功能只发生一次吗?在jQuery上有一个函数。如果这不是你的意思,我很抱歉,请你再详细一点。@JoelHernandez是的,我希望悬停功能只发生一次。但是一个对我没有帮助。我仍然收到200个测试:($(“.dynamicWrap”).one('mouseover',function(){})可能?
$(document.one('mouseover','.dynamicWrap',function(){})
?当动态生成
dynamicWrap
时,这不起作用。主要思想是我应该在插入新div之前执行此代码。谢谢。处理此问题的另一种方法是在创建元素的同一函数中分配鼠标指针。这不是跨浏览器解决方案。IE将不起作用。我不知道k术语“跨浏览器解决方案”应该包括IE8,但无论如何,我关于在创建元素时将鼠标指定在其上的注释将在IE8中起作用。