27

我能找到的所有解决方案都建议使用.live()方法。但截至今天,它已被弃用。

.hover()完美适用于非动态创建的“li”元素。但是,一旦我追加新的“li” .hover(),就根本不会触发。

有人想出这个吗?

4

3 回答 3

60

“悬停”事件已被委派事件处理(如.on()根据.on()jQuery 文档页面)弃用。

相反,您需要使用.on()带有 mouseenter 和 mouseleave 的委托事件处理以及每个事件处理程序。

例如:

$(document).on("mouseenter", "li", function() {
    // hover starts code here
});

$(document).on("mouseleave", "li", function() {
    // hover ends code here
});

在您的真实代码中,您将选择一个静态父对象,它比对象更接近动态li标签以document获得更好的性能。

于 2013-02-19T05:23:06.863 回答
1

试试这个

编辑:Sry 错过了已弃用的事件

$(document).on("mouseenter", "li", function(){
       //Your code
});

http://api.jquery.com/live/

小提琴

于 2013-02-19T05:21:42.263 回答
0

使用JQuery 试试这个:

$(document).on('hover', 'li', function () {

});
于 2013-02-19T05:19:17.157 回答