jQuery 1.4.0,live函数,更改事件IE7,8

时间:2013-12-15 21:00:56

标签: jquery

我正在使用jQuery 1.4.0。

我正在尝试使用实时函数将绑定更改事件绑定到我的输入,但它不适用于IE7& 8(在IE9,10上,Firefox可以工作)。

$("input:text").live("change", function(e) {
    alert("works!");
});

问候。

1 个答案:

答案 0 :(得分:1)

您只需更新更改事件的焦点过滤器,以匹配修复此问题的1.4.1中更新的内容。只要在用户更改输入之前和包含jquery核心之后,您就可以在代码中的任何位置包含它。

function testChange(e) {
    var elem = e.target,
        data, val;

    if (!formElems.test(elem.nodeName) || elem.readOnly) {
        return;
    }

    data = jQuery.data(elem, "_change_data");
    val = getVal(elem);

    if (val === data) {
        return;
    }

    // the current data will be also retrieved by beforeactivate
    if (e.type !== "focusout" || elem.type !== "radio") {
        jQuery.data(elem, "_change_data", val);
    }

    if (data != null || val) {
        e.type = "change";
        return jQuery.event.trigger(e, arguments[1], elem);
    }
}

jQuery.event.special.change.filters.focusout = testChange;

提交:https://github.com/jquery/jquery/commit/435772e29b4ac4ccfdefbc4045d43f714e153381