【问题标题】:Toggle Show / Hide Divs切换显示/隐藏 div
【发布时间】:2013-09-11 17:18:11
【问题描述】:

我正在使用以下 jQuery 和 HTML 在单击链接时显示和隐藏 div。

如果我单击巴西,这会很好地显示 div。但是,如果我然后单击同样显示但巴西未隐藏的美国。

如何切换显示,以便在任何时候只显示一个 div..?

$(document).ready(function() {
$('.toggle').prev().data('is_visible', true);
$('.toggle').hide();
$('a.togglelink').click(function() {
$(this).data('is_visible', !$(this).data('is_visible'));
$(this).parent().next('.toggle').toggle('slow');
return false;
    });
});

<ul id="list">
<li><a href="#" class="togglelink">America</a></li>
<div class="toggle" style="display: block;"><p>America - USA - the States</p></div>

<li><a href="#" class="togglelink">Brazil</a></li>
<div class="toggle" style="display: block;"><p>Brazil - Federative Republic of Brazil</p></div>
</ul>
</div>

【问题讨论】:

    标签: jquery html


    【解决方案1】:

    从修复标记开始,DIV 不能是 UL 的直接子代。

    <ul id="list">
        <li>
            <a href="#" class="togglelink">America</a>
            <div class="toggle" style="display: block;">
                <p>America - USA - the States</p>
            </div>
        </li>
        <li>
            <a href="#" class="togglelink">Brazil</a>
            <div class="toggle" style="display: block;">
                <p>Brazil - Federative Republic of Brazil</p>
            </div>
        </li>
    </ul>
    

    然后做:

    $(document).ready(function () {
        $('.toggle').hide();
        $('a.togglelink').on('click', function (e) {
            e.preventDefault();
            var elem = $(this).next('.toggle')
            $('.toggle').not(elem).hide('slow');
            elem.toggle('slow');
        });
    });
    

    FIDDLE

    【讨论】:

    • 我已经完成了这项工作,但是如果 div 滑过页面末尾,是否仍然可以使页面自动滚动以使 div 仍然可见?然后当它关闭时让它向后滚动?欢呼
    【解决方案2】:

    我认为您的数据绑定处理得太复杂了。 你能看看我的例子DEMO

    这样就可以了:

    $(document).ready(function() {   
    $('.toggle').hide();
    $('a.togglelink').click(function() {
        $('.toggle').hide();
        $(this).parent().next('.toggle').toggle('slow');
        return false;
    });
    

    });

    【讨论】:

    • 谢谢你的作品。但是如何隐藏可见的 div 而没有可见的?
    猜你喜欢
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-16
    • 2011-11-08
    • 1970-01-01
    相关资源
    最近更新 更多