Action .on('blur')对输入文本不起作用 - jQuery 1.9+

时间:2013-11-27 21:06:27

标签: javascript jquery html

我使用最新的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]")

2 个答案:

答案 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