用 .on 替换弃用的 .live
Replacing deprecated .live with .on
我正在使用 jsfiddle 中的一些现有代码,但它使用的是已弃用的 .live 函数。当我更改代码以使用 .on 时,它不再有效。这是 jsfiddle:http://jsfiddle.net/DBfKz/
脚本将项目添加到 "compare list"。我想要做的是点击一个旁边的 "x",从列表中删除。
这是已弃用的代码:
$(".box a").live("click", function() {
$(this).parent().remove();
updateLinkAndCounter();
});
我把它转换成这样:
$(".box").on("click","a", function() {
$(this).parent().remove();
updateLinkAndCounter();
});
我把jQuery的版本改成更新的版本,支持.on
但现在脚本不起作用。我之前成功使用过 .on,只是不知道为什么它在这里不起作用。感谢您提供的所有帮助!
问题是 .box
元素是在 dom 准备好之后创建的,因此该元素不存在,无法将事件附加到该元素。
您需要将事件处理程序添加到已存在的元素。
我将您的活动更改为:
$("#container").on("click", '.box a', function(e) {
$(e.target).parent().remove();
updateLinkAndCounter();
});
还将您的 jQuery 版本从 1.4.4 更改为 1.8.3
现在的工作方式相同。
我正在使用 jsfiddle 中的一些现有代码,但它使用的是已弃用的 .live 函数。当我更改代码以使用 .on 时,它不再有效。这是 jsfiddle:http://jsfiddle.net/DBfKz/
脚本将项目添加到 "compare list"。我想要做的是点击一个旁边的 "x",从列表中删除。
这是已弃用的代码:
$(".box a").live("click", function() {
$(this).parent().remove();
updateLinkAndCounter();
});
我把它转换成这样:
$(".box").on("click","a", function() {
$(this).parent().remove();
updateLinkAndCounter();
});
我把jQuery的版本改成更新的版本,支持.on
但现在脚本不起作用。我之前成功使用过 .on,只是不知道为什么它在这里不起作用。感谢您提供的所有帮助!
问题是 .box
元素是在 dom 准备好之后创建的,因此该元素不存在,无法将事件附加到该元素。
您需要将事件处理程序添加到已存在的元素。
我将您的活动更改为:
$("#container").on("click", '.box a', function(e) {
$(e.target).parent().remove();
updateLinkAndCounter();
});
还将您的 jQuery 版本从 1.4.4 更改为 1.8.3
现在的工作方式相同。