javascript - jquery mouseenter 和 mouseleve 不适用于新注入(inject)的 dom 元素

标签 javascript jquery mouseevent

我有以下代码。它工作正常,但是当我将新元素添加到 dom 中时,它不会显示或隐藏它。

jQuery("div.cat-icon").on({
       mouseenter: function () {
        jQuery(this).find('.catselect').show();
    },
    mouseleave: function () {
        jQuery(this).find('.catselect').hide();
    }
});

请指教。

最佳答案

动态添加的元素需要委托(delegate)事件处理程序:

jQuery(document).on({
    mouseenter: function () {
        jQuery(this).find('.catselect').show();
    },
    mouseleave: function () {
        jQuery(this).find('.catselect').hide();
    }
}, "div.cat-icon");

关于javascript - jquery mouseenter 和 mouseleve 不适用于新注入(inject)的 dom 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20069609/

相关文章:

javascript - 无法读取未定义的属性 'map' - 来自 ReactJS 的错误

jquery - 如何使用 jquery 更改输入类型 = 范围中的输入值、最小值和最大值?

javascript - 在我刷新页面之前,下拉菜单和模式在 Vue 组件内不起作用

javascript - JQuery:如何禁用鼠标悬停在页面上所有 <select> 元素上的滚动

javascript - 在 Jasmine 中模拟假按键

javascript - Angular 1.2.0-rc.3 指令优先级变更问题

javascript - 如何通过一键删除按钮删除选中的项目

javascript - 多级 UL 水平 Accordion

javascript - 如何覆盖*仅*左键单击 anchor ?

javascript - 用鼠标移动浏览器