我使用以下CSS和Javascript。它使用一个额外的类
dropdown-submenu。我用Bootstrap 4 beta测试了它。
它支持多级子菜单。
$('.dropdown-menu a.dropdown-toggle').on('click', function(e) { if (!$(this).next().hasClass('show')) { $(this).parents('.dropdown-menu').first().find('.show').removeClass('show'); } var $subMenu = $(this).next('.dropdown-menu'); $subMenu.toggleClass('show'); $(this).parents('li.nav-item.dropdown.show').on('hidden.bs.dropdown', function(e) { $('.dropdown-submenu .show').removeClass('show'); }); return false;});.dropdown-submenu { position: relative;}.dropdown-submenu a::after { transform: rotate(-90deg); position: absolute; right: 6px; top: .8em;}.dropdown-submenu .dropdown-menu { top: 0; left: 100%; margin-left: .1rem; margin-right: .1rem;}<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.min.css" integrity="sha384-/Y6pD6FV/Vv2HJnA6t+vslU6fwYXjCFtcEpHbNJ0lyAFsXTsjBbfaDjzALeQsN6M" crossorigin="anonymous"><script src="https://pre.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script><script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.min.js" integrity="sha384-h0AbiXch4ZDo7tp9hKZ4TsHbi047NrKGLO3SEJAg45jXxnGIfYzk4Si90RDIqNm1" crossorigin="anonymous"></script><nav > <a href="#">Navbar</a> <button type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation"> <span ></span> </button> <div id="navbarNavDropdown"> <ul > <li > <a href="#">Home <span >(current)</span></a> </li> <li > <a href="http://example.com" id="navbarDropdownMenulink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown link </a> <ul aria-labelledby="navbarDropdownMenulink"> <li><a href="#">Action</a></li> <li><a href="#">Another action</a></li> <li > <a href="#">Submenu</a> <ul > <li><a href="#">Submenu action</a></li> <li><a href="#">Another submenu action</a></li> <li > <a href="#">Subsubmenu</a> <ul > <li><a href="#">Subsubmenu action</a></li> <li><a href="#">Another subsubmenu action</a></li> </ul> </li> <li > <a href="#">Second subsubmenu</a> <ul > <li><a href="#">Subsubmenu action</a></li> <li><a href="#">Another subsubmenu action</a></li> </ul> </li> </ul> </li> </ul> </li> </ul> </div></nav>


