JQuery切换时只点击上一个跨度显示

时间:2014-02-14 17:26:02

标签: javascript jquery html

尝试仅显示每个.filter之前的.active-box范围。我尝试过使用.prev,.closest,.siblings和其他一些方法,但我似乎无法使用任何东西。根据我使用它,它将切换所有或没有,似乎无法挑出.active-box。我知道一些基本的JQuery,但我对此感到困惑并且没有想法。我做错了什么?

我还尝试了<li>标记内的每个方法。

.empty-box显示一个空框,.active-box填充空框,点击一个较小的方框。

HTML:

                <div class="filter-dropdown">
                    <ul>
                        <span class="empty-box"><span class="active-box"></span></span><li class="filter" class="active" data-filter="all" data-dimension="season">All</li>
                        <span class="empty-box"><span class="active-box" style="display: none;"></span></span><li class="filter" data-filter="winter" data-dimension="season">Winter</li>
                        <span class="empty-box"><span class="active-box" style="display: none;"></span></span><li class="filter" data-filter="fall" data-dimension="season">Fall</li>
                        <span class="empty-box"><span class="active-box" style="display: none;"></span></span><li class="filter" data-filter="summer" data-dimension="season">Summer</li>
                        <span class="empty-box"><span class="active-box" style="display: none;"></span></span><li class="filter" data-filter="spring" data-dimension="season">Spring</li>
                    </ul>
                </div>

JQuery的:

    $('.filter').click(function() {
        $('span').closest('.active-box').toggle();});

1 个答案:

答案 0 :(得分:2)

你需要:

$('.filter').click(function() {
    $(this).prev('.empty-box').find('.active-box').toggle();
});