Javascript .hover事件对页面加载后动态加载的元素不起作用
对于通过jQuery动态加载的一组Javascript .hover事件对页面加载后动态加载的元素不起作用,javascript,jquery,Javascript,Jquery,对于通过jQuery动态加载的一组divs,我有以下事件处理程序 $(document).ready(function () { $('.one span').hover(function () { $(this).animate({ backgroundColor: '#666666', color: '#DDDDDD', marginRight: 5 }, 250); }, function () { $(this).animate({ bac
div
s,我有以下事件处理程序
$(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加载的
在这种情况下我能做什么?如何对稍后将出现的元素执行某种类型的“后期绑定”?而不是$('.one span')。悬停(
使用委派事件,因为它是动态添加到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);
});
将文档
替换为执行上述脚本时存在的最接近的容器。而不是$('.one span')。悬停(
使用委派事件,因为它是动态添加到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);
});
将文档
替换为执行上述脚本时存在的最接近的容器。而不是$('.one span')。悬停(
使用委派事件,因为它是动态添加到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);
});
将文档
替换为执行上述脚本时存在的最接近的容器。而不是$('.one span')。悬停(
使用委派事件,因为它是动态添加到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);
});
用执行上述脚本时存在的最接近的容器替换
文档
。相关的是您正在加载。一个和span
,或者只是span
?如果您正在加载这两个,那么的父项是什么?一个?答案与事件委派相关。相关的是您正在加载。一个和span
或只是span
?如果您同时加载这两个,那么的父项是什么?一个?答案与事件委派相关^nt delegation^^。相关的是您正在加载。一个和span
还是只加载span
?如果您同时加载这两个,那么.one
的父项是什么?答案与事件委派相关^1。您需要分别加载鼠标器和鼠标器鼠标器。@Blazer谢谢。更新,作为鼠标器使用nter
和mouseleave
但我认为我在某处看到了。hover
并对其进行了更改..但在API文档中验证了这一点..您需要分别使用mouseenter
和mouseleave
。@Blazemonger谢谢。更新后,将其命名为mouseenter
和mouseleave
,但我认为我看到了。hover
somewhere并更改了它..但在API文档中验证了它..您需要分别使用mouseenter
和mouseleave
。@Blazemonger谢谢。更新后,它被命名为mouseenter
和mouseleave
,但我认为我看到了。将鼠标悬停在某处并更改了它..但在API文档中验证了它..您需要鼠标分别输入
和
mouseleave
。@Blazemonger谢谢。更新后,它被命名为mouseenter
和mouseleave
,但我认为我看到了。悬停在某个地方并更改了它。。但在API文档中验证了这一点。