0

我有 3 个具有相同结构的扩展 div。就像是:

<div class="expand">
    <h3 class="more">Click to expand</h3>
    <div class="wrapper">Iasdfgh qwerty zxcvbn</div>
</div>

jQuery

$(document).ready(function(){
    var toggleButton = $('.expand h3.more');
    var expandWrap = $(toggleButton).next('.wrapper');
    $(toggleButton).click(function(){
        if ($(expandWrap).is('.closed')) {
            $(toggleButton).removeClass('closed');
            $(expandWrap)
                .removeClass('closed')
                .slideDown('slow');

        } else {
            $(expandWrap)
                $(expandWrap).slideUp('slow', function(){
                    $(this).addClass('closed');
                    $(toggleButton).addClass('closed');
                });
        }
    });
});

现在,当我单击“单击以展开”h3时,所有.wrapper幻灯片都会上下滑动。我怎样才能只定位下一个立即数.wrapper,以便一次只能切换一个?

4

3 回答 3

0

也许使用函数 next() :

http://api.jquery.com/next/

于 2012-07-18T07:07:04.857 回答
0

试试这个

$(document).ready(function(){
    var toggleButton = $('.expand h3.more');

    $(toggleButton).click(function(){
        var thisToggleButton = this;
        var expandWrap = $(thisToggleButton ).next('.wrapper');
        if (expandWrap.is('.closed')) {
            $(thisToggleButton ).removeClass('closed');
            expandWrap
                .removeClass('closed')
                .slideDown('slow');

        } else {
           expandWrap.slideUp('slow', function(){
                    $(this).addClass('closed');
                    $(thisToggleButton).addClass('closed');
                });
        }
    });
});
于 2012-07-18T07:07:13.840 回答
0

你可以稍微简化一下:

$(function(){
    $('.expand h3.more').on('click',function(){
        $(this).next('div.wrapper').toggle('slow');
    });
});

jsFiddle:http: //jsfiddle.net/QzHYX/

编辑:请注意,如果您使用的是旧版本的 jQuery,则必须更改onlive才能使用。

于 2012-07-18T07:09:42.560 回答