jQuery не изменяет класс или CSS в Internet Explorer


У меня есть слайд-шоу с изображением, на котором есть небольшой DIV для копирования рекламы. Каждый раз, когда слайд меняется, рекламный блок исчезает, и появляется новый, в другом положении.

Это отлично работает в любом браузере, кроме IE. Все мои анимации jQuery работают нормально, но по какой-то причине коробка не меняет свое положение. Оба.css (), чтобы изменить мои верхние / левые значения и фактически изменить класс с помощью .attr () терпит неудачу в IE.

Вот JS, чтобы изменить класс, и показать коробку. Первая строка просто получает позицию из имени файла (изображение-6.формат JPG).

var heroPosition = vars.currentImage.attr('src').substr(-5, 1);
switch(heroPosition) {
  case "1":
    $('#hero-ad').attr('class','hero-position-1');
    break;
  case "2":
    $('#hero-ad').attr('class','hero-position-2');              
    break;
  case "3":
    $('#hero-ad').attr('class','hero-position-3');
    break;
  case "4":
    $('#hero-ad').attr('class','hero-position-4');
    break;
  case "5":
    $('#hero-ad').attr('class','hero-position-5');
    break;
  case "6":
    $('#hero-ad').attr('class','hero-position-6');
break;
}
$('#hero-ad').show("fold", {}, 1000);
Сам код был вроде как взломан в слайдере изображений Nivo.

Живой сайт здесь http://www.sugarloaf.com/slredesignlocal/index.html

Большинство JS в JS / плагинах.JS. CSS для позиций находится в css / style.css

EDIT я должен упомянуть ,что я пытался использовать.addClass() и .removeClass () и этот метод также не удался.

3 2

3 ответа:

Я предполагаю, что у вас есть эта проблема конкретно в IE, потому что вы используете substr() с отрицательным числом. Проверьте этот пост . Вместо этого следует использовать slice(), чтобы получить ожидаемое значение.

Используйте .addClass( className ) для изменения классов css.

Например

$('#hero-ad').addClass('hero-position-1')

В зависимости от версии IE, class может не быть допустимым атрибутом.

Попробуйте сделать это, если вы хотите заменить класс, а не просто добавить новый класс.

$('#hero-ad')[0].className = 'hero-position-1';