jquery切换关闭其他打开的div

时间:2012-03-29 11:26:08

标签: javascript jquery toggle

我在使用切换时遇到问题,我需要关闭已经打开的其他div,所以只有你点击的div一次打开,但仍然会切换。

<script type="text/javascript">
    $(function () {
        $(".flyout").hide();
        $(".flyout").siblings("span").click(function () {
            $(this).siblings(".flyout").toggle(500);
        });
    });
</script>  

<ul>
<li ><span id="europe"></span>Europe
<div class="flyout">
<ul>
<li>item 1</li>
</ul>
</div>
</li>

<li ><span id="europe"></span>Asia
<div class="flyout">
<ul>
<li>item 1</li>
</ul>
</div>
</li>
</ul>

关于我可以添加什么来获取点击功能以关闭所有其他div class =“flyout”的任何想法,除了它上面的那个?

查看http://www.footballadvisor.net/map/以查看问题

感谢

4 个答案:

答案 0 :(得分:2)

请检查一下:

http://jsfiddle.net/MbTRD/1/

$(function () {
    $(".flyout").hide();
    $(".flyout").siblings("span").click(function () {
        $(this).siblings(".flyout").toggle(500);
    });
});

答案 1 :(得分:1)

如果要捕获click事件,则该国家/地区的名称应位于范围内。 以下关闭除了您单击的元素之外的所有内容:

 <script type="text/javascript">
     $(function () {
         $(".flyout").hide();
         $(".flyout").siblings("span").click(function () {
             $(".flyout").hide();
             $(this).siblings(".flyout").toggle(500);
         });
     });
</script>  

<ul>
<li ><span id="europe">Europe</span>
<div class="flyout">
<ul>
<li>item 1</li>
</ul>
</div>
</li>

<li ><span id="europe">Asia</span>
<div class="flyout">
<ul>
<li>item 1</li>
</ul>
</div>
</li>
</ul>

答案 2 :(得分:1)

检查这个http://jsfiddle.net/MbTRD/5/我希望这对你有帮助

答案 3 :(得分:0)

这是对jQuery的改进:Fiddle

    $(function () {
        $(".flyout").siblings("span").click(function () {
            $(".flyout").slideUp(200, function() {
                $(this).siblings(".flyout").toggle(500);
            });
            $(this).siblings(".flyout").toggle(500);
        });
    });