javascript - 当 mouseenter 在子元素上时,如何不在父元素上触发 mouseleave?

标签 javascript jquery mouseevent jquery-events

无法完成这项工作。无需了解我的确切情况以及我为什么要尝试做我正在做的事情,一个基本的摘要是:

我在一个父元素中有 4 个子元素。我目前正在为 children 附加一个 mouseenter,所以:

$('.parent').on('mouseenter', '.child', function() {
    showSomething();
});

那我想说

$('.parent').on('mouseleave', function() {
    hideSameSomething();
});

但是当子项上的 mouseenter 触发父项上的 mouseleave 并产生令人讨厌的闪烁时。我已经在子处理程序上尝试了 e.stopPropagation() 但没有成功。当我进入子元素并且仅当我真正离开父元素时,如何不触发父 mouseleave 事件有什么想法吗?

最佳答案

尝试将两者合而为一。

官方文档:http://api.jquery.com/on/#on-events-selector-data

$(".parent, .child").on({
    mouseenter: function() {
        // Handle mouseenter...
    },
    mouseleave: function() {
        // Handle mouseleave...
    }
});

关于javascript - 当 mouseenter 在子元素上时,如何不在父元素上触发 mouseleave?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15152109/

相关文章:

php - 如何创建计时器

php - 从 JS 数组进行暗示性搜索,可能吗?

javascript - 将鼠标悬停在 Canvas 上使图像重新出现

java - 处理中每个对象的 mouseEventListener

cocos2d-html5中的html5 mousemove事件

javascript - react 通用容器与深层 child 的沟通

javascript - jQuery if 语句取决于 px 中的宽度

php - 用于在网页中解析的大型数据集

javascript - 如何使用 JavaScript(或 JQuery)检查输入是否为空或是否包含特定字符串?

java - SWT 滚动条上的鼠标事件