Почему для завершения анимации jQuery требуется дополнительный щелчок в IE8? - PullRequest
2 голосов
/ 24 мая 2010

Я довольно новичок в jQuery в целом, однако следующий код прекрасно работает в Chrome и Firefox, но не в IE8.В IE8 я должен щелкнуть в любом месте страницы, чтобы запустить анимацию после выбора радиокнопки.Вот код:

$("input[name=method]").change(function() {
    if($("input:radio[name=method]:checked").val() == 'installer') {    
        $('#download').slideUp(0).removeClass("vendorSize").text("Download").addClass("installerSize").slideDown(500);      
    }
    else if($("input:radio[name=method]:checked").val() == 'url') {
        $('#download').slideUp(0).removeClass("installerSize").text("Download From Vendor Website").addClass("vendorSize").slideDown(500);
    }
});

Кто-нибудь знает, почему это происходит в IE8, но не в других браузерах?Если вы считаете, что с помощью .animate это будет работать лучше (не то, чтобы я думал, что это должно иметь значение), можете ли вы привести пример того, как его кодировать?

Ответы [ 3 ]

0 голосов
/ 24 мая 2010

В IE событие изменения не запускается напрямую, когда вы нажимаете переключатель, поэтому вам нужно щелкнуть куда-нибудь еще до его запуска. Вы можете попробовать использовать событие click вместо события изменения, которое должно работать.

0 голосов
/ 24 мая 2010

Некоторые события не распространяются в IE так же, как в других браузерах. В этом отношении jQuery 1.4 лучше предыдущих версий. Мне пришлось добавить .change () в мой код, чтобы распространить события изменения, такие как эта, - принудительно вызвать событие .change, используя

myselector.trigger('change'); /* we made changes so trigger it */
0 голосов
/ 24 мая 2010

Отображаются ли входы? В IE любые радио или чекбоксовые входы, которые не отображаются (т.е. имеют display="none"), не будут генерировать обычные события щелчка или изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...