如何在一组元素上使用slideToggle?

时间:2013-03-06 18:09:05

标签: javascript jquery

我正在尝试使用jQuery slideToggle()函数来最小化一组表行。我遇到的问题是,当行集最小化时,动画似乎没有生效。我认为它与我使用slideToggle的方式有关,在一组结果而不是父元素上调用它,但我不确定。

我正在使用这一点javascript和jquery来最小化一组行。

$('td').on("click", "a.collection-minimize, a.list-minimize", function(event) {                                          
   event.stopPropagation(); 
   // Get the class of the following row
   var minimize_class = $(this).parent().parent().next().attr('class');                                                 
   // trim whitespace
   minimize_class = minimize_class.replace(/^\s\s*/, '').replace(/\s\s*$/, '');                                         
   // Minimize all following rows of the same class.
   $(this).parent().parent().siblings('.' + minimize_class).slideToggle();                                                 
});

一组示例行:

<tr class="collection-original">
    <td>
        <a class="collection-minimize" onclick="return false" href="#">Minimize collection</a>
    </td>
</tr>
<tr class=" collection-original" style="display: table-row;"></tr>                 
<tr class=" collection-original" style="display: table-row;"></tr>
<tr class=" collection-original" style="display: table-row;"></tr>
<tr class=" collection-original" style="display: table-row;"></tr>

可以在此处查看使用此页面的实时页面:http://iodocs.vky.me/whitehat#Application-API-PUT-Modify-an-application

1 个答案:

答案 0 :(得分:0)

请参阅:http://jsfiddle.net/DEPjD/

 minimize_class = minimize_class.replace(/^\s\s*/, '').replace(/\s\s*$/, '').trim(); 

或者:

minimize_class = minimize_class.replace(/^\s\s*/, '').replace(/\s\s*$/, '').replace(/ /g, '');