Jquery显示并隐藏在表格中

时间:2011-08-21 15:11:54

标签: jquery show show-hide slidedown slideup

我有一张包含内容的图表和一张图片,点击后会显示div中包含的隐藏内容。这个div有另一个表来格式化内容。现在,当我在IE和Chrome中测试时,隐藏的内容会根据点击的按钮上下滑动。但是当我在firefox中执行此操作时,内容就会出现并消失,没有顺畅的滑动。谁能告诉我为什么。如果我将显示按钮从顶部表格中移出并将其插入两个表格之间,则上下滑动可以顺利进行。唯一的问题是我需要显示按钮在内容

我的脚本看起来像这样

<script type="text/javascript">
//<![CDATA[
  $(function() {
    $(document).ready(function() {

      $(".slidingDiv").hide()
      $('.show').click(function() {
        $(".slidingDiv").slideDown(1000);
        return false;
      });

      $('.hide').click(function() {
        $(".slidingDiv").slideUp(1000);
        return false;
      });
    });
  });
//]]>
</script>

出现在页面的头部

然后我的页面正文代码看起来像

<table style="width: 100%;" align="left" border="0">
  <tbody>
    <tr>
      <td>content here</td>
      <td>and here</td>
      <td><a class="show"><img src="images/more.jpg" onmouseout="this.src='images/more.jpg';" onmouseover="this.src='images/more_over.jpg';" /></a></td>
    </tr>
  </tbody>
</table>

<div class="slidingDiv">
  <table style="width: 100%;" align="left" border="0">
    <tbody>
      <tr>
        <td>content hidden</td>
        <td>content hidden</td>
        <td>content hidden</td>
      </tr>
      <tr>
        <td>content hidden</td>
        <td>content hidden</td>
      </tr>
      <tr>
        <td>content hidden</td>
        <td>content hidden</td>
      </tr>
    </tbody>
  </table>
  <a class="hide"><img src="images/close.jpg" onmouseout="this.src='images/close.jpg';" onmouseover="this.src='images/close_over.jpg';" /></a>
</div>

1 个答案:

答案 0 :(得分:0)

检查此JSFiddle:http://jsfiddle.net/s3Fpt/3/(1)

这适用于Firefox

似乎你的div和table中的align="left" border="0"会对动画产生负面影响。这不是问题,因为您应该只使用HTML定义文档,而不是样式。此外,align是一个已弃用的属性,无论如何都应该避免。

使用css:

可以完成对齐和边框的样式设置
td, div.slidingDiv
{
  border: 0;
  text-align: left;  // Though not really necessary because this is default
}

(1)编辑:删除额外的功能包装,如ScottE所注意到的