简体   繁体   English

bootstrap 4下拉菜单关闭

[英]bootstrap 4 dropdown menu outside close

Im using javascript to keep my dropdown toggle on a Bootstrap 4 website not closing when clicking inside the.dropdown element, but I'm having hard time getting it to work so it closes when i click outside the.dropdown element.我使用 javascript 来保持我在 Bootstrap 4 网站上的下拉切换在 .dropdown 元素内部单击时不关闭,但是我很难让它工作所以当我在 .dropdown 元素外部单击时它关闭。 Currently it doesn't close unless i click the toggle button again...目前它不会关闭,除非我再次单击切换按钮......

Any suggestions?有什么建议么?

Here is the script这是脚本

jQuery('.dropdown-toggle').on('click', function (e) {
  $(this).next().toggle();
});
jQuery('.dropdown-menu.keep-open').on('click', function (e) {
  e.stopPropagation();
});

if(1) {
  $('body').attr('tabindex', '0');
}
else {
  alertify.confirm().set({'reverseButtons': true});
  alertify.prompt().set({'reverseButtons': true});
}

Simply you can add an onclick: event.stopPropagation() event on the .dropdown-menu to achieve what you want <div class="dropdown-menu" onclick="event.stopPropagation()">只需在.dropdown-menu上添加一个onclick: event.stopPropagation()事件即可实现您想要<div class="dropdown-menu" onclick="event.stopPropagation()">

PS: to use jQuery you can use $ instead of jQuery . PS:要使用 jQuery 你可以使用$而不是jQuery If you cannot use it, you may have jQuery noConflict mode enabled somewhere in your code, see jQuery noConflict如果你不能使用它,你可能在代码的某处启用了 jQuery noConflict 模式,请参阅jQuery noConflict

 <link href="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/css/bootstrap.min.css" rel="stylesheet" /> <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/popper.js@1.12.9/dist/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.0.0/dist/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <div class="dropdown"> <button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Dropdown button </button> <div class="dropdown-menu" onclick="event.stopPropagation()"> <a class="dropdown-item" href="#">Action</a> <a class="dropdown-item" href="#">Another action</a> <a class="dropdown-item" href="#">Something else here</a> </div> </div>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM