Селектор jquery не работает в IE8 - PullRequest
0 голосов
/ 18 февраля 2011

У меня проблема с тем, что мне приходится оформлять скин сайта без возможности изменить HTML.

В результате мне приходится делать некоторые вещи с JS, которые я обычно не делал бы. Часть того, что я должен сделать, это переместить изображение по умолчанию в новую позицию. Это работает во всех браузерах, включая IE7, за исключением IE8. Идеи?

$(".carouselThumbWrap.carouselSelected").animate({ marginTop: hoverYPos }, 1);

HTML выглядит так:

<li assetUrl="art.png" class="carouselThumbWrap carouselSelected" assetType="image">blah</li>

Единственное, что я могу думать, это то, что у нас гоночная ситуация. Выбранный carouselSepped назначен тем или иным виджетом, который я не могу изменить и не должен появиться к моменту запуска моей функции document.ready. Идеи? Я что-то упустил?

Ответы [ 5 ]

2 голосов
/ 18 февраля 2011

Оказывается, это была гоночная ситуация, и это исправило ее:

$($(".carouselThumbWrap")[0]).addClass("carouselSelected");
0 голосов
/ 18 февраля 2011

Если какая-то другая функция JS также связана с каруселью, вы можете перезаписать нарушающую функцию одной из своих. Затем в новой перезаписанной функции вызовите оригинал и добавьте собственную логику, чтобы все исправить.

someWidget.badFunction = function()
{
    //mess up carousel so julie can get her work done
}

var originalBadFunction = someWidget.badFunction;

somewidget.badFunction = function()
{
    originalBadFunction();
    //put your code that fixes everything and makes the world right again here
}
0 голосов
/ 18 февраля 2011

Если выясняется, что это проблема синхронизации, вы можете решить проблему с помощью плагина Live Query .

0 голосов
/ 18 февраля 2011

Вы можете попробовать

$("li.carouselThumbWrap.carouselSelected").animate({ marginTop: hoverYPos }, 1);

Это должно быть то же самое, но если это ошибка, то есть может помочь.

0 голосов
/ 18 февраля 2011

Неисправный IE8, не могли бы вы попробовать что-то вроде:

$(".carouselThumbWrap").each(function() {
  if(this.hasClass("carouselSelected")) this.animate({ marginTop: hoverYPos }, 1);
});

чтобы обойти это?

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