jquery IE8 — совместное использование live (‘размытие’, функция) и live (‘изменение’, функция)

#jquery #internet-explorer-8 #onchange #blur

#jquery #internet-explorer-8 #onchange #размытие

Вопрос:

Хорошо, у меня странная проблема с IE8 и jQuery. Смотрите код ниже:

 <!DOCTYPE html>
<html dir="ltr">
<head> 
</head>
<body>
<input>
<script type="text/javascript" language="javascript" src="jquery.tools.min.js"></script> 
<script type="text/javascript" language="javascript">
$(document).ready(function() {
        $('input').live('blur',function(){alert('blur');});
        $('input').live('change',function(){alert('change');});
});
</script>
</html>
  

При существующем коде я не могу запустить обработчик события on change после редактирования поля ввода. Однако, если я закомментирую обработчик события blur, то при изменении сработает.

Почему IE8 это делает? Что я должен сделать, чтобы и on blur, и on change работали одновременно во всех браузерах?

Комментарии:

1. Это неприятный взлом, но, хвае, вы пробовали запускать их оба с задержкой в 0 секунд?

2. please….nooooooooooooo….do У меня действительно тоже есть??? должно быть что-то получше…

3. Я не знаю, действительно ли вам это нужно, но этот взлом задержки очень помог мне в IE8 🙂

Ответ №1:

jQuery tools включает в себя более старую версию jQuery версии 4.2.2. Похоже, в IE8 есть ошибка, которая нарушает вашу предполагаемую функциональность. При обновлении до версии v1.6.1 в IE8 запускаются оба события. Я тестировал старые версии jQuery, и все, что было сломано, было исправлено в версии v1.4.3, поэтому, если вы по какой-либо причине не можете выполнить обновление основной версии, то, надеюсь, обновление младшей версии будет в порядке.