2017-12-21 9 views
4

外部からのデータを含む外部テーブルの内部に内部テーブルがあります。私はそれを隠すことを決め、ユーザーが「Expand」ボタンを押すだけを表示することに決めました。JQuery .slideToggleはテーブル上でスムーズではありません

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<table class="partsTable"> 

    <tr> 

    <td class="sideForPartsTable" width="5%"> 
     <button class="expandButton">Expand button</button> 
    </td> 
    <td class="sideForPartsTable">Title + sum1 + sum2</td> 
    <td class="sideForPartsTable" width="5%">edit</td> 
    <td class="sideForPartsTable" width="5%">remove</td> 

    </tr> 

    <tr> 
    <td> 
     <table class="partTableContent"> 
     <tr> 
      <td> Test1 </td> 
     </tr> 
     <tr> 
      <td> Test2 </td> 
     </tr> 
     </table> 
    </td> 
    </tr> 

</table> 

しかし、このアクションのアニメーションがまだ十分とは言えない:私は、HTML、この

$(document).ready(function() { 
    $('.partTableContent').hide(); 
    $('.expandButton').click(function() { 
    // .parent() selects the A tag, .next() selects the P tag 
    $(this).closest('tr').next(' tr').find('table').slideToggle(200); 
    }); 
}); 

のようにjQueryのslideToggle機能を使用してそれをやりました。隠されたコンテンツのポップアップは、スムーズなアニメーションを伴わないインスタント的なものです。私は.slideToggleの中で 'slow'を使ってテーブルの幅を変更しようとしました。しかし、それは動作しませんでした。何か案は?

+0

を変更:次のコードが動作するかどうかを参照してください。 '); ' – VPK

+0

動作しません –

+0

正しく動作しませんorking?アニメーションそのものまたは滑らかな効果? – VPK

答えて

1

内部テーブルを<div>の内側に置き、その部門にそのクラスを与えますclass="partTableContent"。その後

<table class="partsTable"> 

    <tr> 

     <td class="sideForPartsTable" width="5%"> 
      <button class="expandButton">Expand button</button> 
     </td> 
     <td class="sideForPartsTable">Title + sum1 + sum2</td> 
     <td class="sideForPartsTable" width="5%">edit</td> 
     <td class="sideForPartsTable" width="5%">remove</td> 

    </tr> 

    <tr> 
     <td> 
      <div class="partTableContent"> 
       <table> 
        <tr> 
         <td> Test1 </td> 
        </tr> 
        <tr> 
         <td> Test2 </td> 
        </tr> 
       </table> 
      </div> 
     </td> 
    </tr> 

</table> 

、 `.slideToggle(200、「リニア、緩和パラメータで試す

$(this).closest('tr').next(' tr').find('table').slideToggle(200); 

$('.partTableContent').slideToggle(200); 

Working Fiddle

+0

答えをありがとう、しかし、ここに事があります: 私は "partsTable"の多くを持っており、このクエリはそれが "特定のテーブルの中で次のtrタグを見つけることによってサブテーブルを見つけることができます –

+0

それでもまだ$(this).closest( 'tr')。next( 'tr')。find( 'div.partTableContent')。slideToggle 200); ' – VPK

+0

ああ、ありがとう! –

関連する問題