Javascript Mouseenter不适用于动态内容

Javascript Mouseenter不适用于动态内容,javascript,jquery,Javascript,Jquery,我已经编写了一个代码,当鼠标移到特定元素上时,我需要触发一个功能 它的工作良好,下面的代码为所有静态 $("table td").on("mouseenter",function(){ console.log("mouse entered") }); 但对于所有动态XYZ事件,即使我使用下面的代码也不会触发 $("table td").on("mouseenter",".editcolumn",function(){ console.log("mouse entered") }

我已经编写了一个代码,当鼠标移到特定元素上时,我需要触发一个功能

它的工作良好,下面的代码为所有静态

$("table td").on("mouseenter",function(){
    console.log("mouse entered")
});
但对于所有动态
XYZ
事件,即使我使用下面的代码也不会触发

$("table td").on("mouseenter",".editcolumn",function(){
    console.log("mouse entered")
});

你知道怎么做吗。我使用的是jQuery 1.11

如果表在DOM加载上是可用的,那么您可以使用类editColumntd编写delgated事件,如下所示:

$("table").on("mouseenter",".editcolumn",function(){
   console.log("mouse entered")
 });

我知道我刚刚发表了评论,但我想我会给你举个例子:

HTML:


这
是
A.
桌子
标题
和
东西
虽然
asdf
qwer
zxcv
rtyu
泰伊
dfgh
dfgh
韦特



Javascript:

$(函数(){
$('.add column')。单击(函数(){
$('.append').append(“iueo”);
$('.tablehead')。追加(“Mo列”);
});
/*这个*/
$(“#table”).on('mouseenter','edit column',function(){
/*^^^^应该是孩子或是这个的孩子*/
$(this.css('background-color','yellow');
});
});


这是一个


为委托事件提供了更好的解释。

对于添加或删除的动态元素,我也遇到了类似的问题。在这种情况下,您可以创建动态元素,并将事件处理程序附加到其属性,也就是说,在您的情况下,您可以将所需的操作放入由属性事件处理程序调用的函数中:

应该是这样的:

$("table").on("mouseenter",".editcolumn",function(){
   console.log("mouse entered")
 });
Javascript:

 function whenMouseEnters() {
    // perform some operations
 }
<td onmouseenter="whenMouseEnters()">
Html:

 function whenMouseEnters() {
    // perform some operations
 }
<td onmouseenter="whenMouseEnters()">


感谢您的回复。我试过了,但它的非工作表也是动态添加的?没有。只添加列。
$(document).on(“mouseenter”,“td.editcolumn”,function(){})可能?因为表也是动态生成的,所以表并没有在DOM loadAnytime上呈现。函数不起作用的原因是,传递给
方法上的
的第二个参数用于捕获原始选择器的子级事件<代码>$('#table')。on('mouseenter','edit column',function(){})也可以。