切换开始但没有关闭

时间:2012-10-20 16:20:35

标签: javascript toggle

我最近尝试为div打开和关闭,但是使用了很多方法,由于链接转到.com /#

,我无法做到这一点。

直到我找到了一个没有重定向到#

的帖子
<script type="text/javascript">

    function toggleVisibility(newSection) {
        $("#info").not("#" + newSection).hide();
        $("#" + newSection).show();
    }
</script>

我还在学习JavaScript,但我不知道如何添加切换功能。 现在它只是切换,当我按下它时它不会切换。

请帮忙。

3 个答案:

答案 0 :(得分:1)

Toggle根据元素的当前显示可见性显示和隐藏。所以这样的事情应该有效:

function toggleVisibility(newSection) {
    $("#" + newSection).toggle();
}

答案 1 :(得分:0)

听起来你可能想要标签:当选择一个面板时,其他面板会消失。

这是一种常见的方法:

$('a.tab').click(function(e) {
    e.preventDefault();
    $('.panel:visible').hide();
    var el = $($(this).attr('href'));
    el.toggle();
});

您有链接显示组中的特定面板并隐藏其他面板:

<style type="text/css">
    .panel {display: none;}
</style>

<a class="tab" href="#panel1">Show/hide panel 1</a>
<a class="tab" href="#panel2">Show/hide panel 2</a>
<a class="tab" href="#panel3">Show/hide panel 3</a>

<div class="panel" id="panel1">1</div>
<div class="panel" id="panel2">2</div>
<div class="panel" id="panel3">3</div>

答案 2 :(得分:0)

您提供的代码是隐藏ID为info的所有元素,这些元素没有newSection中给出的ID,然后显示newSection

由于元素只能有一个ID,因此将元素视为可能具有多个ID,或者可能存在多个元素,这是一种奇怪和毫无意义的事情。

您可以使用.toggle()方法:$("#"+newSection).toggle()