用 .on 替换已弃用的 .live [重复]
Posted
技术标签:
【中文标题】用 .on 替换已弃用的 .live [重复]【英文标题】:Replacing deprecated .live with .on [duplicate] 【发布时间】:2015-06-25 03:03:42 【问题描述】:我正在使用 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】:问题是 .box
元素是在 dom 准备好之后创建的,因此该元素不存在,无法将事件附加到。
您需要将事件处理程序添加到已存在的元素。
http://jsfiddle.net/DBfKz/72/
我将您的活动更改为如下所示:
$("#container").on("click", '.box a', function(e)
$(e.target).parent().remove();
updateLinkAndCounter();
);
还将您的 jQuery 版本从 1.4.4 更改为 1.8.3
现在也一样。
【讨论】:
非常感谢!我为此沮丧了好几个小时,解决方案非常简单。以上是关于用 .on 替换已弃用的 .live [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何在最新的 XAMPP 上运行已弃用的 php 代码 [重复]
替换 7.X 的 Atlassian JIRA 插件中已弃用的 AbstractEditHandlerDetailsWebAction
用 QuerydslJpaPredicateExecutor 替换已弃用的 QuerydslJpaRepository 失败