0

您好,我有以下代码。如果单击 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

4 回答 4

0

尝试

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

    lastel = $($(this).attr("href"));
    addressValue.toggle()
});
于 2013-08-13T07:28:22.097 回答
0

尝试这样的事情:

    $("a").click(function() {
        $($(this).attr("href")).toggle();
    });
于 2013-08-13T07:29:01.870 回答
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>;
于 2013-08-13T07:33:55.900 回答
0

您的 javascript 代码中有一个错误 ('+i'):

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

应该:

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

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

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

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

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

于 2013-08-13T07:49:19.697 回答