用于多列列表的JQuery slideToggle

时间:2013-02-19 09:18:29

标签: javascript jquery html css list

我有一个大的列表,宽度为li 33%,所以有3列。

computers   monitors   hi-fi
sex-toys    pancakes   scissors

在每个中都有UL隐藏,点击slideToggle。

JQuery的

$('.subCategory > .parentleaf:has(ul) > .categoryicon').click(function() {
    $(this).siblings('ul').slideToggle('fast');
    });

根据我的意愿不要滑动的问题,他们每次都重复列表,就像这样

computers   monitors   hi-fi
[li]cars    sex-toys   pancakes
[li]dogs    scissors

我想以这种方式滑动它们:

computers   monitors   hi-fi
[li]cars    pancakes   scissors
[li]dogs
sex-toys       

我怎样才能实现这个目标?

jsFiddle

jsFiddle 2 - 在这种情况下需要红色bg颜色为3列

1 个答案:

答案 0 :(得分:1)

我在每三个clearer div

之间添加了li
<ul class="subCategory">
    <li class="parentleaf">
        <span class="categoryicon">click</span>
        <span class="categoryname">Cars</span>
        <ul class="submenu">
            <li><a href="#">Car 1</a></li>
            <li><a href="#">Car 2</a></li> 
            <li><a href="#">Car 3</a></li>
            <li><a href="#">Car 4</a></li>
        </ul>
    </li>
    <li class="parentleaf">
        <span class="categoryicon">click</span>
        <span class="categoryname">Phones</span>
        <ul class="submenu">
            <li><a href="#">Phone 1</a></li>
            <li><a href="#">Phone 2</a></li> 
            <li><a href="#">Phone 3</a></li>
            <li><a href="#">Phone 4</a></li>
        </ul>
    </li>  
    <li class="parentleaf">
        <span class="categoryicon">click</span>
        <span class="categoryname">Guns</span>
        <ul class="submenu">
            <li><a href="#">Gun 1</a></li>
            <li><a href="#">Gun 2</a></li> 
            <li><a href="#">Gun 3</a></li>
            <li><a href="#">Gun 4</a></li>
        </ul>
    </li>   
    <div class="clearer"></div>
    <li class="parentleaf">
        <span class="categoryicon">click</span>
        <span class="categoryname">Notebooks</span>
        <ul class="submenu">
            <li><a href="#">Notebook 1</a></li>
            <li><a href="#">Notebook 2</a></li> 
            <li><a href="#">Notebook 3</a></li>
            <li><a href="#">Notebook 4</a></li>
        </ul>
    </li>   

CSS

.clearer
{
    clear:both; 
}

您还可以获取当前点击li的索引,并通过一些数学运算在点击时添加更清晰的div并在需要时将其删除,但我认为没有必要