Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在DOM更改后绑定到javascript事件_Javascript_Jquery_Effects - Fatal编程技术网

如何在DOM更改后绑定到javascript事件

如何在DOM更改后绑定到javascript事件,javascript,jquery,effects,Javascript,Jquery,Effects,我有一个绑定到tr标签的函数,可以提供如下鼠标悬停效果: $(“.grid tr”).bind(“mouseenter”, 函数(){ $(此).addClass(“悬停”); }).bind(“mouseleave”,函数(){ $(this.removeClass(“hover”);}) 问题是,当发生分页或过滤等情况时,网格是通过ajax加载的。这会导致网格被完全替换,所有事件绑定都会失败。是否有一种方法可以绑定到一个事件,该事件即使在DOM更改时也会自动附加到匹配的元素 谢谢 是您想要的

我有一个绑定到tr标签的函数,可以提供如下鼠标悬停效果:

$(“.grid tr”).bind(“mouseenter”, 函数(){ $(此).addClass(“悬停”); }).bind(“mouseleave”,函数(){ $(this.removeClass(“hover”);})

问题是,当发生分页或过滤等情况时,网格是通过ajax加载的。这会导致网格被完全替换,所有事件绑定都会失败。是否有一种方法可以绑定到一个事件,该事件即使在DOM更改时也会自动附加到匹配的元素

谢谢

是您想要的:

$(".grid tr").live("mouseenter", function () { $(this).addClass("hover"); }).bind("mouseleave", function () { $(this).removeClass("hover"); });

或者,您可以使用

更多信息:

请从现在开始使用
.on()
,因为
.live()
在jQuery中不受欢迎,因为它效率低下

$(".grid tr")
    .on("mouseenter", function () { $(this).addClass("hover"); })
    .on("mouseleave", function () { $(this).removeClass("hover"); });
虽然live()可以解决这个问题,但效率很低。最好挂接ajax调用的成功事件,并使用新事件更新适用的dom节点