Немного озадачен этим, так что я надеюсь, что вы, ребята, можете помочь.
Похоже, я обнаружил ошибку jQuery, связанную с IE.Создан небольшой тест (включен здесь), который я могу обмануть проблему.Прекрасно работает в Firefox и Chrome и не работает в IE8-9.
Проблема в том, что DIV «podcastStatus» не обновляется в нужный момент, когда обновление происходит в обратном вызове события.Вы можете проверить его локально, используя инструменты IE и Firebug, и установив точки останова, где я прокомментировал код.
Шаги:
- Установка точек останова в Firebug и IE
- Инструменты разработчика в соответствии с моими комментариями в коде
- Нажмите «Далее» или «Пред.»
- Текст в DIV должен измениться на «Далее» или «Пред.» В зависимости откакую кнопку вы нажали
- Текст в DIV должен затем вернуться к «Игра ...»
Я думаю, что это связано с innerHTML, но я попробовал трюк с оболочкой innerHTML DIVи без кубиков.
ПРИМЕЧАНИЕ. Я использовал как .text (), так и .html () без разрешения.
Вот тестовый пример:
<body>
<style type="text/css">
#podcastStatus {
background-color: ButtonHighlight;
font-size: 120pt;
font-weight: bolder;
color: Black;
margin: 0 auto;
text-align: center;
position:absolute; top:0; bottom:0; left:0; right:0;
margin:auto; height:200px; width:100%;
z-index: 100;
}
</style>
<div id="podcastStatus">Playing...</div>
<div id="targetBtns">
<input type="button" name="prev" id="prev" value="Prev"/>
<input type="button" name="next" id="next" value="Next"/>
</div>
<script>
function onButtonClicked(e) {
switch (e.target.defaultValue) {
case "Next":
// Use IE tools or Firebug...
//Set breakpoint here. Immediate after this executes, DIV text should be updated to "Prev"....
$('#podcastStatus').html("Prev").show();
break;
case "Prev":
// Use IE tools or Firebug...
//Set breakpoint here. Immediate after this executes, DIV text should be updated to "Next"....
$('#podcastStatus').html("Next").show();
break;
}
//Set breakpoint here. DIV should show either "Prev" or "Next" at this point...
playPause();
}
function playPause() {
$('#podcastStatus').text("Playing...").fadeIn('slow');
}
$( "#targetBtns" ).click( function(event) { onButtonClicked(event) } );
</script>
</body>