单击另一个元素时如何关闭另一个元素

滑雪

单击链接时,我试图显示一个菜单,如果打开了另一个菜单,则在显示另一个菜单之前将其关闭。换句话说,就像手风琴菜单一样,但是我一次只需要打开一个菜单。到目前为止,我尝试的所有操作均无效。我不太了解Jquery,但是我将发布到目前为止的代码。

的HTML

    <nav id="cat">
        <ol>
            <li><a title="" href="#1">1;</a></li>
            <li><a title="" href="#2">2</a></li>
            <li><a title="" href="#3">3</a></li>
            <li><a title="" href="#4">4</a></li>
            <li><a title="" href="#5">5</a></li>
        </ol>
    </nav>


    <nav class="sub">
        <ol id="1">
            <li><a title="" href="">1a</a></li>
        </ol>
    </nav>

    <nav class="sub">
        <ol id="2">
            <li><a title="" href="">2a</a></li>
        </ol>
    </nav>

    <nav class="sub">
        <ol id="3">
            <li><a title="" href="">3a</a></li>
        </ol>
    </nav>

    <nav class="sub">
        <ol id="4">
            <li><a title="" href="">4a</a></li>
        </ol>
    </nav>

    <nav class="sub">
        <ol id="5">
            <li><a title="" href="">5a</a></li>
        </ol>
    </nav>

jQuery查询

$('.sub').hide();
$('#cat > ol > li > a').click(function(){
    var hrefSuffix = $('a').attr('href').split('#')[1];
    $('.sub > ol').attr(hrefSuffix).slideDown('slow');
    $('.sub').find('ol[id=' + hrefSuffix ']').slideUp('slow');
});
阿伦·P·约翰尼(Arun P Johny)

这是一个经典的手风琴实现,您可以进行如下调整。

var $subs = $('.sub');
$('#cat > ol > li > a').click(function() {
  var href = $(this).attr('href'),
    $target = $(href);
  $target.stop().slideToggle('slow');
  $subs.not($target).stop().slideUp('slow');
});
.sub {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav id="cat">
  <ol>
    <li><a title="" href="#1">1;</a></li>
    <li><a title="" href="#2">2</a></li>
    <li><a title="" href="#3">3</a></li>
    <li><a title="" href="#4">4</a></li>
    <li><a title="" href="#5">5</a></li>
  </ol>
</nav>


<nav class="sub" id="1">
  <ol>
    <li><a title="" href="">1a</a></li>
  </ol>
</nav>

<nav class="sub" id="2">
  <ol>
    <li><a title="" href="">2a</a></li>
  </ol>
</nav>

<nav class="sub" id="3">
  <ol>
    <li><a title="" href="">3a</a></li>
  </ol>
</nav>

<nav class="sub" id="4">
  <ol>
    <li><a title="" href="">4a</a></li>
  </ol>
</nav>

<nav class="sub" id="5">
  <ol>
    <li><a title="" href="">5a</a></li>
  </ol>
</nav>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

单击一个元素会触发另一个元素的点击[JQuery]

单击另一个时关闭风琴项

悬停另一个元素(ReactJS)时如何更改一个元素的样式?

打开另一个模态时如何关闭另一个模态?

HTML / CSS单击:active或:hover时如何触发另一个元素?

悬停元素时,使另一个元素出现

单击一个元素从另一个元素添加/删除类

如何根据另一个元素的文本单击一个元素

当一个元素在另一个元素后面时,SwiftUI按钮会单击

当我使用onclick属性单击元素时如何触发另一个功能

单击另一个元素Selenium中的按钮

当单击另一个元素时,如何触发元素的click函数?

单击另一个时关闭扰流板

如何通过单击另一个在XAML中旋转一个元素?

当另一个元素覆盖该元素时,该元素不可单击

隐藏一个元素时,单击另一个元素x次

如何显示元素并在单击另一个元素时隐藏

使用CSS单击另一个元素时如何显示一个元素?

sass:悬停另一个div时影响另一个元素

如何通过单击另一个元素触发对输入文件元素的单击

如何选择另一个元素内的元素?

当我使用 jQuery 单击另一个元素时隐藏元素

如何在单击另一个元素时关闭一个元素

如何在悬停另一个元素时更改一个元素的颜色?

传递另一个元素以单击

单击同一 div 中的另一个元素后,如何选择特定元素

如何在单击元素时将 id 从一个组件传递到另一个组件

单击时如何获取同一div中另一个元素的值?

单击另一个元素并显示相关内容时如何起飞