javascript - 使用 jQuery 1.8.3 切换

标签 javascript jquery

像这样使用 jQuery 1.8.3 创建切换

 $(document).ready(function() {
        $('#showmenu1').click(function() {
                $('.menu1').slideToggle("fast");
        });
   
   $('#showmenu2').click(function() {
                $('.menu2').slideToggle("fast");
        });
   
   $('#showmenu3').click(function() {
                $('.menu3').slideToggle("fast");
        });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="showmenu1">Click Here</div>
<div class="menu1" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>
<div id="showmenu2">Click Here</div>
<div class="menu2" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>
<div id="showmenu3">Click Here</div>
<div class="menu3" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>

如何减少上面的 jQuery 代码?

最佳答案

使用公共(public)类并使用next()

$(document).ready(function() {
    $('.menu-item').on("click", function() {
        $(this).next().slideToggle("fast");
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="showmenu1" class="menu-item">Click Here</div>
<div class="menu1" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>
<div id="showmenu2" class="menu-item">Click Here</div>
<div class="menu2" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>
<div id="showmenu3" class="menu-item">Click Here</div>
<div class="menu3" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>

或者如果菜单不在旁边,请使用数据属性

$(document).ready(function() {
    $('[data-toggles]').on("click", function() {
        var sel = $(this).data("toggles");
        $(sel).slideToggle("fast");
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<div id="showmenu1" data-toggles=".menu1">Click Here</div>
<div class="menu1" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>
<div id="showmenu2" data-toggles=".menu2">Click Here</div>
<div class="menu2" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>
<div id="showmenu3" data-toggles=".menu3">Click Here</div>
<div class="menu3" style="display: none;">
  <ul>
    <li>Button1</li>
    <li>Button2</li>
    <li>Button3</li>
  </ul>
</div>

关于javascript - 使用 jQuery 1.8.3 切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36061096/

相关文章:

javascript - 添加在 Google map API v3 中打开信息窗口的链接

jQuery Accordion ,将单击的选项卡的开头滚动到顶部,如果展开的选项卡位于单击的选项卡之上,则不起作用?

javascript - 从一组 float 元素中计算出行中的最后一个 div

javascript - 使用 ajax 的动态内容(ruby on rails)

jquery - 将 jsTree 与 MVC .net 结合使用

javascript - 如何检查 'string1'是否在 'string1, string2, string3, .. stringn'中

javascript - 在 react-router 渲染函数中访问 URL 参数

javascript - 页面加载后弹出 youtube 视频

jquery - 获取URL中的YouTube视频ID并将选定的视频ID输入到URL中

javascript - Handlebars : TypeError: Cannot read property 'helperMissing' of undefined