用.on替换已弃用的.live

时间:2015-04-18 05:04:05

标签: jquery live

我使用了jsfiddle中的一些现有代码,但它使用了已弃用的.live函数。当我更改代码以使用.on时,它不再有效。这是jsfiddle:http://jsfiddle.net/DBfKz/

脚本将项添加到"比较列表"。我想要做的就是点击" x"在旁边,从列表中删除。

这是弃用的代码:

$(".box a").live("click", function() {
    $(this).parent().remove();
    updateLinkAndCounter();
});

我把它转换成这个:

$(".box").on("click","a", function() {
    $(this).parent().remove();
    updateLinkAndCounter();
});

我将jQuery的版本更改为更新的版本,它支持.on

但现在脚本不起作用。我成功地使用过.on,我不知道为什么它不在这里工作。感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

问题是在dom准备就绪后创建了.box元素,因此元素不存在以便将事件附加到。

您需要将事件处理程序添加到已存在的元素中。

http://jsfiddle.net/DBfKz/72/

我将您的活动更改为:

$("#container").on("click", '.box a', function(e) {
    $(e.target).parent().remove();
    updateLinkAndCounter();
});

还将您的jQuery版本从1.4.4更改为1.8.3

现在它的工作方式相同。