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加载上是可用的,那么您可以使用类editColumn为td编写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(){})代码>也可以。