首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌套表上的jQuery slideDown

嵌套表上的jQuery slideDown
EN

Stack Overflow用户
提问于 2020-09-13 12:23:31
回答 2查看 62关注 0票数 0

当用户单击“显示”按钮时,我希望使嵌套表从顶部向下滑动。但是jQuery的slideDown()函数立即显示表,即使有500 is的动画持续时间,这不是我想要的。我在哪里犯了个错误?我使用的是jQuery 3.4.1和引导带4。

代码语言:javascript
复制
$('body').on('click', '.show-me', function (e) {
    var elem = $(this);
    var target_id = $(this).data('show');
    var elements = $(target_id);
    if ($(this)[0].classList.contains('collapsed')) {
            e.preventDefault();
        elements.slideUp(500);
        $(this).removeClass('collapsed');
    } else {
            e.preventDefault();
        elements.slideDown(500);
        $(this).addClass('collapsed');
    }
 })
代码语言:javascript
复制
.hidden {
  display: None;
}
代码语言:javascript
复制
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table class="table">
  <tr>
    <th>#</th>
    <th>Name</th>
    <th>Surname</th>
    <th>Date of Birth</th>
    <th>Country</th>
    <th>Show</th>
  </tr>
  
  <tr>
    <td>1</td>
    <td>Josh</td>
    <td>Rose</td>
    <td>09.04.1995</td>
    <td>USA</td>
    <td data-show=".show_1" class="show-me">Show</td>
  </tr>
  
  <tr class="hidden show_1">
    <td colspan=99>
      <table class="w-100">
        <tr>
          <th>Mobile number</th>
          <th>Provider</th>
          <th>ID</th>
        </tr>
        
        <tr>
          <td>999 999 999</td>
          <td>XYZ</td>
          <td>1274</td>
        </tr>
        <tr>
          <td>888 888 888</td>
          <td>XYZ</td>
          <td>1111</td>
        </tr>
      </table>
    </td>
  </tr>
  
  <tr>
    <td>2</td>
    <td>Sabine</td>
    <td>Perr</td>
    <td>15.06.1988</td>
    <td>Finland</td>
    <td data-show=".show_2" class="show-me">Show</td>
  </tr>
  
    <tr class="hidden show_2">
    <td colspan=99>
      <table>
        <tr>
          <th>Mobile number</th>
          <th>Provider</th>
          <th>ID</th>
        </tr>
        
        <tr>
          <td>999 999 999</td>
          <td>XYZ</td>
          <td>1274</td>
        </tr>
      </table>
    </td>
  </tr>
  
  <tr>
    <td>3</td>
    <td>Paul</td>
    <td>Koel</td>
    <td>22.07.1999</td>
    <td>England</td>
    <td data-show=".show_3" class="show-me">Show</td>
  </tr>
  
    <tr class="hidden show_3">
    <td colspan=99>
      <table>
        <tr>
          <th>Mobile number</th>
          <th>Provider</th>
          <th>ID</th>
        </tr>
        
        <tr>
          <td>999 999 999</td>
          <td>XYZ</td>
          <td>1274</td>
        </tr>
        <tr>
          <td>888 888 888</td>
          <td>XYZ</td>
          <td>1111</td>
        </tr>
      </table>
    </td>
  </tr>
</table>

JSFiddle这里:https://jsfiddle.net/ha6gd53z/3/

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-13 13:00:57

slideUp() & slideDown()不会与display: table合作。所以用table包装div (display: block)

工作演示

票数 1
EN

Stack Overflow用户

发布于 2020-09-13 12:52:51

更改显示:无显示:“隐藏”类的内联块。我更新了小提琴。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63870731

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档