2011-08-13 33 views
1

Tested ...和​​不适用:为什么这个fadeOut()在Internet Explorer中不起作用?在IE7,IE8,IE9

<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放在桌子上......任何其他的想法?试图缩放:1但没有... – markzzz

+0

不知道为什么有一个downvote,至少这对我来说是启发。 –

1

Guffa说得对他的回答 - 所以我想提供一种替代(解决方法IE浏览器,这是):

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

该淡出的所有<td> S,然后删除该<tr>本身。似乎在IE8中正常工作。

演示:http://jsfiddle.net/B7ndq/3/

+1

是的,在旧的SO主题中阅读同样的东西。看起来很有效。什么是废话IE! – markzzz

+0

我还没有安装它,所以很遗憾听到我们仍然在IE9中解决这个问题......我无法使用通常的'hasLayout'触发器来与''一致地工作,而不是破坏布局... –

相关问题