jquery如果单击从旧id显示中删除:阻止

时间:2013-08-13 07:26:17

标签: javascript jquery

您好我有以下代码。如果单击a标记,则应删除display:block并再次将其设置为display:none。 这是html部分。有20个部分(像这样的div)

   <!-- Reservieren Sektion 15 --> 
    <div class="section black" id="section16">
         <ul class="nav">
                <ul id="flyout">

                    <li><a class="fly" href="#url"><b>Wir</b><!--[if gte IE 7]><!--></a><!--<![endif]-->
                    <!--[if lte IE 6]><table><tr><td><![endif]-->

                    <li><a href="#section15"><b>Reservieren</b></a></li>

                    <li><a href="#section16"><b><font color="#FFFFFF">Feiern</font></b></a></li>

                    <li><a href="#section17"><b>Arbeiten</b></a></li>

                    <li><a href="#section18"><b>Kaufen</b></a></li>

                    <li><a class="fly" href="#url"><b>Vernetzen</b><!--[if gte IE 7]><!--></a><!--<![endif]-->
                    <!--[if lte IE 6]><table><tr><td><![endif]-->
                        <ul>
                            <li><a href="#section19"><b>Freunde</b></a></li>
                            <li><a href="#section20"><b>Facebook & Qype</b></a></li>
                            <li><a href="#section21"><b>Presse</b></a></li>
                        </ul>
                    <!--[if lte IE 6]></td></tr></table></a><![endif]-->
                    </li>

                    <li><a href="#section22"><b>Impressum</b></a></li>

                </ul>

         </ul>

这就是jquery

$(this)是下一节的id,但是我想为所点击的最后一个id设置display none。

  <script type="text/javascript">
        $("a").click(function () {
        var addressValue = $(this).attr("href");
            if($(addressValue).css("display") == "block"){

                $(addressValue+i).css("display","none");    
            }

        $(addressValue).css("display","block");
        });
    </script>;

有人可以帮助我:)。

4 个答案:

答案 0 :(得分:0)

尝试

var lastel;
$("a").click(function () {
    if(lastel){
        lastel.hide();
    }

    lastel = $($(this).attr("href"));
    addressValue.toggle()
});

答案 1 :(得分:0)

尝试这样的事情:

    $("a").click(function() {
        $($(this).attr("href")).toggle();
    });

答案 2 :(得分:0)

你做得很好你刚刚错过else条件的if

<script type="text/javascript">
        $("a").click(function () {
        var addressValue = $(this).attr("href");
            if($(addressValue).css("display") == "block"){

                $(addressValue+i).css("display","none");    
            }
            else{                                   //You missed this else
               $(addressValue).css("display","block");
            }
        });
    </script>;

答案 3 :(得分:0)

您的javascript代码中存在错误('+ i'):

$(addressValue+i).css("display","none");

应该是:

$(addressValue).css("display","none");

顺便说一句,您的代码按预期工作。单击“Feiern”链接时,#section16 div显示将传递给“none”,然后返回“block”。

如果您需要隐藏所有部分div,但单击了一个div,您可以执行以下操作:

$('a').click(function () {
   var addressValue = $(this).attr('href');
   $('.section').css('display', 'none');
   $(addressValue).css('display','block');
});

假设使用'.section'选择器没有冲突。