Я использую jQuery 1.4.0.
Я пытаюсь связать событие изменения с моими входами, используя живую функцию, но не работает на IE7 и 8 (на IE9,10, Firefox это работает).
$("input:text").live("change", function(e) {
alert("works!");
});
С уважением.
Вам просто нужно обновить фильтр фокуса для события изменения, чтобы он соответствовал тому, что было обновлено в 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;
Commit: https://github.com/jquery/jquery/commit/435772e29b4ac4ccfdefbc4045d43f714e153381
change
событие события только тогда, когда элемент теряет фокус пользователя. Но естьpropertychange
событие, но это не рекомендуется , так как IE9.