Jquery 新添加的div不';t继承文档中的事件处理程序就绪

Jquery 新添加的div不';t继承文档中的事件处理程序就绪,jquery,Jquery,如果在运行时附加新的div,则新创建的div不会与documentready中的事件处理程序连接 比如说, 如何将新div分配给document ready中的当前事件处理程序?您尝试过使用.on()了吗?或者jQuery 1.7-的旧版本中的.bind() .on() 说明:为一个或多个事件附加事件处理程序函数 添加到选定的元素。 .bind() 说明:将处理程序附加到元素的事件 快捷方式事件处理程序(如click(),mouseover()等)将仅应用于页面加载时DOM可用的元素。动态附

如果在运行时附加新的div,则新创建的div不会与documentready中的事件处理程序连接

比如说,

如何将新div分配给document ready中的当前事件处理程序?

您尝试过使用.on()了吗?或者jQuery 1.7-的旧版本中的.bind()

.on()

说明:为一个或多个事件附加事件处理程序函数 添加到选定的元素。

.bind()

说明:将处理程序附加到元素的事件


快捷方式事件处理程序(如
click()
mouseover()
等)将仅应用于页面加载时DOM可用的元素。动态附加元素时,必须将事件附加到静态父元素,并提供希望将事件委托给的筛选器,如下所示:

$("body").on('mouseover', '.hoverme', function() {
    $(this).css({backgroundColor: '#000'});                    
});
$("body").on('mouseout', '.hoverme', function() {
    $(this).css({backgroundColor: '#0af'});                 
});
请注意,我在这里使用了
body
作为主要选择器。理想情况下,应该使用与
.hoverme
元素最近的包含元素,该元素不会动态附加到DOM中

此外,您还可以使用
hover()
稍微整理代码:

或使用live()。这适用于jQuery1.4+,在1.7中已被弃用,但仍然有效

$(".hoverme").live('mouseover', function()
{
    $(this).css({backgroundColor: '#000'});                    
});
$(".hoverme").live('mouseout', function()
{
    $(this).css({backgroundColor: '#0af'});                   
});

可能的副本。您需要使用
on()
(以前是
live()
delegate()
)来处理在动态元素上触发的事件。必须使用on(1.7)或live eventsthx。它也可以工作,但是使用不推荐的事件处理程序有什么缺点吗?是的-如果将来升级到jQuery的更新版本,它可能无法工作
delegate()
live()
的更好的替代品,尽管在jQuery 1.7中,
on()
也已经取代了它。如果您使用某种CMS平台,您不能在不破坏其他功能的情况下升级jQuery,并且必须坚持使用较旧的jQuery版本,那么这是很好的选择
$(".hoverme").live('mouseover', function()
{
    $(this).css({backgroundColor: '#000'});                    
});
$(".hoverme").live('mouseout', function()
{
    $(this).css({backgroundColor: '#0af'});                   
});