javascript - .hover 事件不适用于页面加载后动态加载的元素

标签 javascript jquery

我有一组 div 的以下事件处理程序通过 jQuery 动态加载。

$(document).ready(function () {
    $('.one span').hover(function () {
        $(this).animate({ backgroundColor: '#666666', color: '#DDDDDD', marginRight: 5 }, 250);
    }, function () {
        $(this).animate({ backgroundColor: '#DDDDDD', color: '#666666', marginRight: 0 }, 250);
    });
});

问题是这些事件处理程序没有被解雇,我怀疑这可能是因为这些元素 $('.one span')页面加载后通过jQuery加载。

遇到这种情况我能做什么?如何对稍后出现的元素进行某种“后期绑定(bind)”?

最佳答案

不要使用 $('.one span').hover( 使用委托(delegate)事件,因为它是动态添加到 DOM 的。见下文,

$(document).on('mouseenter', '.one span', function () {
  $(this).animate({ backgroundColor: '#666666', color: '#DDDDDD', marginRight: 5 }, 250);
}).on('mouseleave', '.one span', function () {
   $(this).animate({ backgroundColor: '#DDDDDD', color: '#666666', marginRight: 0 }, 250);
});

document 替换为执行上述脚本时存在的最接近的容器。

关于javascript - .hover 事件不适用于页面加载后动态加载的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19715267/

相关文章:

javascript - 单击导航菜单链接时使用 javascript 折叠/展开 DIV

javascript - 在 IE8 中,$.parseJSON 返回未定义

javascript - 如何在 jQuery animate() 中使用 box-shadow?

javascript - Angular 2 Observables - 对 Action 的空响应仍然显示数组中的数据

javascript - 调用 jQuery.i18n 库后,我收到 Uncaught TypeError : string is not a function in my login method

javascript - 查找大于或等于 2014 的正则表达式

jquery - 使用 css 删除隐藏的 div 空间

javascript - 将新数据点条目添加到折线图

javascript - 通过匹配第二个 JavaScript 对象数组中的项目来更新 JavaScript 对象数组

javascript - 从该元素中的类和内容的每个实例创建一个对象