2011-02-18 21 views
0

HTMLを変更することができずにサイトをスキップしなければならないという問題があります。IE8でjqueryセレクタが動作しない

その結果、私は通常はやっていない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機能が実行されるまでには登場してはいけません。アイデア?何か不足していますか?その周りを

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

を取得する:

+0

は、合意されました。コミュニティは質問をしたり、良い答えに投票してタグ付けしたりすることを中心に構築されています。 – Jeff

+1

申し訳ありません。私はここでかなり新しく、そのやり方を知らなかった。完了しました。 – panzhuli

+0

これは、animate()バグのようです。まだ調査中。コードを$( "carouselThumbWrap.carouselSelected")に変更します。css( "background"、 "white"); IE8で動作します... – panzhuli

答えて

2

は、それがレースの状況だったと、これはそれを修正判明:

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

IE8で時間を費やしました...あなたは良い点があります。 –

0

バギーIE8の誤動作は、あなたのような何かを試みることができますか?

0

タイミングの問題が発生した場合は、Live Queryプラグインを使用して問題を説明することができます。

0

あなたはそれは同じである必要がありますが、それはすなわちバグであれば、それは役立つかもしれない

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

を試みることができます。

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 
} 
関連する問題