2011-06-28 13 views
3

IE以外のすべてのブラウザでうまく動作する次の機能があります。 1つの画像を読み込んだ後に戻って同じ<a>タグをクリックすると、画像がフェードアウトしますが、読み込まれません。これは他のブラウザでは動作しますが、IEでは動作しない理由に困惑しています。すべての洞察が大いに感謝します。はIEとjQueryで問題が発生します。

$('a').click(function({ 
    $("#el").animate({ 
     opacity: 0 
    }, 800, 
    function(){ 
     $("<img/>").attr('src', 'http://www.google.com/images/logos/ps_logo2.png').load(function(){ 
      $("#el img").attr('src', "http://www.google.com/images/logos/ps_logo2.png") 
      $("#el").animate({ 
      opacity: 1 
      }, 
      800) 
     }); 
    }); 
}); 

答えて

2

にsrcを設定する前にロード機能を割り当てます。

イメージは最初のクリック後にキャッシュに格納されるため、すぐにロードされるため、​​が遅くなります。

+0

私はこれをスライドショーに使用していますが、クリックしたリンクのhrefが読み込まれてから要素がフェードアウトするようにする必要があります。これは正しい方法ではありませんか?私は一般的にこのコードを使用するか、スライドショーに非常に似ています。 – jeffreynolte

+0

イメージがロードされたときにload()が起動するので、イメージがまだロードされていることを確認できます。現在のコードで問題になっているのは、ロード関数を割り当てる前にイメージがロードされているということだけです。 –

+1

違いをご覧ください:http://jsfiddle.net/doktormolle/F6ECx/それはあなたのアプローチのロジックを変更するものではありませんが、唯一の大きな変更は問題を修正することです。 –

0

おそらく、IEがどのように不透明度を処理するかに問題があります。 Quirksmode on opacity

関連する問題