我使用最新的jQuery版本(1.9.1)更新了我的应用程序。根据发布更新,.live()方法已停止并从1.9 + jQuery版本中删除。新资源现在是.on(),语法相同。
早期,我在下面编写了jQuery代码:
jQuery("#addressTypes ul li input[type=text]").live('blur', function () {
var item = {
addressType: jQuery("#addressTypes ul input[type=text]").val(),
idAddressType: jQuery("#addressTypes ul input[type=text]").parent().attr("id")
}
submitUpdateAddressType(item);
});
此代码适用于旧版本,但已停止使用jQuery更新。
有人能帮助我吗?请注意,由于业务问题,无法更改项jQuery("#addressTypes ul li input[type=text]")
。
答案 0 :(得分:7)
jQuery(document).on('blur', "#addressTypes ul li input[type=text]", function () { });
答案 1 :(得分:2)
对于静态元素,您只需将live
替换为on
。
对于动态创建的元素,您需要使用带有三个参数的on()
版本:
$(StaticContainer).on('event', 'selector', function() { });
请参阅the documentation有关直接和委派事件的部分。
最简单的解决方案是:
jQuery(document).on('blur', "#addressTypes ul li input[type=text]", function () {
虽然通常最好找到尽可能靠近目标元素的静态容器(而不是document
)