2011-08-13 11 views
1

IE7、IE8、IE9のTested ...と​​は適用されません。このfadeOut()がInternet Explorerで動作しないのはなぜですか?

<table> 
    <tr class="sideOn hidden"> 
     <td class="trackBotton"> 
      <input type="submit" value="Remove" onClick="remSide(this);return false" /> 
     </td>   
    </tr> 
</table> 

function remSide(param) { 
    $(param).parents('.sideOn').fadeOut(500, function() { 
      $(this).remove(); 
    }); 
} 

なぜこれがあるとどのように私はこの問題を解決することができますか?

またremove()を削除することはできません:

function remSide(param) { 
    $(param).parents('.sideOn').fadeOut(500); 
} 

答えて

5

jQueryのは、Internet Explorerでフェージングを行うためにフィルタを使用し、フィルタはレイアウトのみを持っている要素に適用されます。

次のようなテーブル行のレイアウトを与えることができます:

.sideOn { position: absolute; } 

その後の要素がInternet Explorerでフェードが、テーブル行のpositionスタイルを変更することが推奨されていませんので、あなたが他のいくつかの要素を使用する必要がありますあなたが消したいもの。

+0

なぜdownvoteですか?あなたが間違っていると思われることを説明しなければ、答えを改善することはできません。 – Guffa

+0

私はdownvote男を入れていない:)ええ、あなたのソリューションはいいようだが、私はテーブルにposition_absoluteを置くことを取り除くだろう...他のアイデア?ズームで試してみましたが、何もありませんでした。 – markzzz

+0

なぜダウンボートがあるのか​​分かりませんが、少なくともこれは私には啓発されていました。 –

1

Guffaは、右の彼の答えでそれを持っていた - 私は、代替(つまりIE、の回避策)を提供したいと思います:

function remSide(param) { 
    $(param).parents('.sideOn').find('td').fadeOut(500, function() { 
      $(this).parent().remove(); 
    }); 
} 

これは<tr>自身を削除し、その後、すべての<td> Sをフェードアウト。 IE8で正常に動作するようです。

デモ:http://jsfiddle.net/B7ndq/3/

+1

古いSOのトピックで同じことを読んでいます。それが動作するように見えます。どのような馬鹿のIE! – markzzz

+0

私はそれをまだインストールしていないので、IE9でこのようなことをやっているのを聞いて悲しいです。通常の 'hasLayout'トリガを' 'と一貫して動作させることはできませんでした。レイアウト... –

関連する問題