почему .change не работает на IE8 - PullRequest
1 голос
/ 28 января 2012

Хорошо, у меня есть jQuery .change

$('#application').change(function(){
var selected = $(this).val().trim();
alert(selected);
if(selected == 'something') {
  $('#profile-info').show();
}
....
....

my html

<select name="application" id="application">
<option value="--select something--">--select something--</option>
<option value="first">first</option>
<option value="second">second</option>
<option value="third">third</option></select>

Предупреждение срабатывает во всех браузерах, но IE ..... ie8 и 7 не работают навсе

любые идеи, которые я мог бы пропустить

Ответы [ 2 ]

5 голосов
/ 28 января 2012

Это связано с тем, что метод "trim" не поддерживается ни в одной версии IE9.

Если вы избавитесь от обивки, она работает просто отлично:

$('#application').change(function(){
    var selected = $.trim($(this).val());
    alert(selected);
    if(selected == 'something') {
      $('#profile-info').show();
    }
});

Проверьте консоль ошибок в инструментах разработчика IE (нажмите F12), чтобы увидеть полученную ошибку JavaScript.

Посмотрите мой пример работы в IE8: http://jsfiddle.net/Ku8HL/1/.

РЕДАКТИРОВАТЬ: jQuery на самом деле имеет метод обрезки, так что вы можете использовать $ .trim для достижения того же. IE8 и ниже не имеют метода обрезки объекта String. Я обновил приведенный выше код и jsfiddle для включения метода усечения jQuery.

0 голосов
/ 28 января 2012

IE не играет хорошо в этой ситуации.В соответствии с этим SO вопросом , вы должны прислушиваться к щелчку.

Редактировать: Очевидно, мои глаза решили, что IE8 - это IE7 сегодня.

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