原文:http://www.smuwcwt.com/archives/323 另一篇:http://www.linuxfly.org/post/523/
该Bug只在IE8非兼容模式下会存在,目前已经找到多篇关于此Bug的介绍,具体见文末!
版本号: jquery1.3.2
浏览器: IE8
问 题: toggle()存在hide后无法show的问题
代 码:
<script type="text/javascript"> $(document).ready(function(){ $(‘#tbl td’).bind(‘click’,function(){ $(this).parent().next().toggle(); }) }) </script> <table id="tbl"> <tr><td>LINE1</td></tr> <tr><td>LINE2</td></tr> <tr><td>LINE3</td></tr> <tr><td>LINE4</td></tr> </table>
描 述: 当单击LINE1时,LINE2会隐藏,但再次单击时,却无法正常显示了!
修 复1: 利用1.3.2最新加入的方法toggle(switch)
<script type="text/javascript"> $(document).ready(function(){ $(‘#tbl td’).bind(‘click’,function(){ $(this).parent().next().toggle($(this).parent().next().css(‘display’)==’none’); }) }) </script> <table id="tbl"> <tr><td>LINE1</td></tr> <tr><td>LINE2</td></tr> <tr><td>LINE3</td></tr> <tr><td>LINE4</td></tr> </table>
修 复2: 利用toggleClass切换样式
<style> .hidden{ display:none; } </style> <script type="text/javascript"> $(document).ready(function(){ $(‘#tbl td’).bind(‘click’,function(){ $(this).parent().next().toggleClass(‘hidden’); }) }) </script> <table id="tbl"> <tr><td>LINE1</td></tr> <tr><td>LINE2</td></tr> <tr><td>LINE3</td></tr> <tr><td>LINE4</td></tr> </table>
代码比较少,如需要测试,请自行Copy Code, and Import 相关版本的jquery!
|