обработчики живых изменений в jQuery 1.4.1 все еще не всегда работают для отдельных элементов в IE - PullRequest
0 голосов
/ 27 января 2010

Этот вопрос связан с моим последним о jQuery 1.4. Они предположительно исправили ошибку, из-за которой обработчики изменений не работали в IE, но она не полностью исправлена.

Я пытаюсь привязать обработчик живых изменений к элементу выбора. В большинстве случаев, когда я меняю его, запускается обработчик событий. Но если я вкладываю элемент сразу после загрузки страницы, затем пытаюсь изменить значение с помощью клавиатуры, а затем убрать вкладку, событие не запускается в IE. Это происходит только в первый раз, когда я пытаюсь изменить значение. Я заметил это в IE 6, 7 и 8. Это не происходит ни в каких других браузерах, которые я пробовал. Я уверен, что это ошибка в jQuery. Кто-нибудь знает простой способ обойти это?

Вот пример страницы для демонстрации ошибки:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html><head>
<meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
<title>jQuery live change handler test 2</title>
</head>
<body>
<script type="text/javascript" src="jquery-1.4.1.min.js"></script>
<select id="test">
    <option value="a">a
    <option value="b">b
</select>
<script type="text/javascript">
$("#test").live("change", function() {
    alert('hi');
});
</script>
</body></html>

1 Ответ

2 голосов
/ 27 января 2010

Для jQuery 1.4 исправление здесь: http://github.com/jquery/jquery/commit/435772e29b4ac4ccfdefbc4045d43f714e153381

Для jQuery 1.4.1 исправление здесь: http://github.com/jquery/jquery/commit/942f8f7f75a55a36e6b9745030d3b3c983518aa8

Вот обсуждение ошибки: http://dev.jquery.com/ticket/5851

...