Анимация Jquery не работает в IE7

#javascript #jquery #internet-explorer #internet-explorer-7

#javascript #jquery #internet-explorer #internet-explorer-7

Вопрос:

Я нахожусь в процессе завершения сайта и просто работаю над тем, чтобы сделать его совместимым с ie7, однако есть один базовый скрипт, который перемещает 3 вкладки вверх / вниз, и он не работает, что бы это ни было. код приведен ниже.

  $(document).ready(function() {
     $('.lower').click(function() {

    $('#range-dropdown').animate({
    top: '315',
  }, 2000, function() {});
  $('#range-dropdown2').animate({
    top: '0',
  }, 2000, function() {});
      $('#range-dropdown3').animate({
    top: '0',
  }, 2000, function() {});
      $('.rangelist-container').animate({
    top: '715',
  }, 2000, function() {});
      $('#dropdown-holder').animate({
    marginBottom: '120px',
  }, 2000, function() {});
   });


   $('.lower1').click(function() {
   $('#range-dropdown2').animate({
    top: '315',
  }, 2000, function() {});
      $('#range-dropdown').animate({
    top: '0',
  }, 2000, function() {});
      $('#range-dropdown3').animate({
    top: '0',
  }, 2000, function() {});
     $('.rangelist-container').animate({
    top: '715',
  }, 2000, function() {});
        $('#dropdown-holder').animate({
    marginBottom: '120px',
  }, 2000, function() {});


    });

  $('.lower2').click(function() {
  $('#range-dropdown3').animate({
    top: '315',
  }, 2000, function() {});
    $('#range-dropdown').animate({
    top: '0',
  }, 2000, function() {});
    $('#range-dropdown2').animate({
    top: '0',
  }, 2000, function() {});
    $('.rangelist-container').animate({
    top: '715',
  }, 2000, function() {});
        $('#dropdown-holder').animate({
    marginBottom: '120px',
  }, 2000, function() {});


  });
 });
  

будем признательны за любую помощь

* все значения css объявлены в таблице стилей.

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

1. Вы бы сэкономили много времени на ввод текста, если бы просто предоставили эти классы выпадающих списков.

2. хм, что ты имеешь в виду? я лишь очень слегка разбираюсь в JS, чтобы избежать необходимости использовать flash для простых анимаций. @pointy

3. Я думал обо всех повторяющихся строках почти одного и того же кода. Это не имеет большого значения.

Ответ №1:

Например, у вас повсюду случайные запятые в конце:

 $('#range-dropdown').animate({
    top: '315', // <----------------- Right here
}, 2000, function() {});
  

Удалите их, чтобы это выглядело так:

 $('#range-dropdown').animate({
    top: '315'
}, 2000, function() {});
  

IE7 расстраивается из-за этих завершающих запятых, но большинство других браузеров пропускают это мимо ушей и DWIM (Делают то, что я имею в виду) вместо того, чтобы жаловаться.

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

1. о, jslint действительно выглядит очень удобно, понятия не имел об этом. еще раз спасибо!

Ответ №2:

Попробуйте явно указать единицы измерения. Вы говорите '315' , но в каких единицах это? Ноги? Метры? Сантиметры? Используйте '315px' , поскольку в нем явно указаны единицы измерения.

Кроме того, вам не нужно писать function() {} снова и снова. Просто опустите ее полностью.

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

1. к сожалению, это не устраняет проблему, хотя спасибо за предупреждение об исключении функции.