jquery选择器在IE8中不起作用

时间:2011-02-18 18:13:42

标签: jquery internet-explorer-8

我遇到一个问题,我必须在不更改HTML的情况下对网站进行换肤。

因此,我不得不用JS做一些我通常不会做的事情。我要做的部分是将“默认”图像移动到新位置。这适用于所有浏览器,包括IE7,EXCEPT IE8。想法?

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

HTML看起来像这样:

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

我唯一能想到的是我们有种族情况。 carouselSelected由某个小部件或其他小部件分配,我无法更改,并且在document.ready函数运行时不得出现。想法?我错过了什么吗?

5 个答案:

答案 0 :(得分:2)

原来这是比赛情况,这解决了它:

$($(".carouselThumbWrap")[0]).addClass("carouselSelected");

答案 1 :(得分:0)

错误的IE8行为不端,你可以试试像:

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

绕过它?

答案 2 :(得分:0)

如果结果是时间问题,您可以使用Live Query插件来解决问题。

答案 3 :(得分:0)

你可以尝试

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

它应该是相同的,但如果它是一个错误,即它可能有帮助。

答案 4 :(得分:0)

如果其他一些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
}