在Bootstrap中向Dropdown菜单添加Open类的问题

Suf*_*fii 1 html javascript css jquery twitter-bootstrap

我正在尝试添加.open.btn-group来保持菜单打开

$('.keep-Open').on('click', function() {
        $('.btn-group').addClass('open');
 });
Run Code Online (Sandbox Code Playgroud)

但它不起作用!

我不想用

.preventDefault(); 
.stopPropagation(); 
Run Code Online (Sandbox Code Playgroud)

因为这两个停止包括chechbox或选择选项,所以我为什么不在click事件上添加open.btn-group?能不能让我知道为什么这不起作用?

$('.keep-Open').on('click', function() {
        $('.btn-group').addClass('open');
 });
Run Code Online (Sandbox Code Playgroud)
body{margin:50px;}
.dropdown-menu{min-width:230px;}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

<!-- Single button -->
<div class="btn-group">
  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Action <span class="caret"></span>
  </button>
  <div class="dropdown-menu">
<div class="list-group">
  <button type="button" class="list-group-item keep-Open">Cras justo odio</button>
  <button type="button" class="list-group-item keep-Open">Dapibus ac facilisis in</button>
  <button type="button" class="list-group-item keep-Open">Morbi leo risus</button>
  <button type="button" class="list-group-item keep-Open">Porta ac consectetur ac</button>
  <button type="button" class="list-group-item keep-Open">Vestibulum at eros</button>
</div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Aru*_*hny 6

默认的单击处理程序删除了open该类,因为您不想使用停止传播,一种解决方案是使用超时(异步)调用将类添加回来

$('.keep-Open').on('click', function() {
  setTimeout(function() {
    $('.btn-group').addClass('open');
  })
});
Run Code Online (Sandbox Code Playgroud)
body {
  margin: 50px;
}
.dropdown-menu {
  min-width: 230px;
}
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

<!-- Single button -->
<div class="btn-group">
  <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Action <span class="caret"></span>
  </button>
  <div class="dropdown-menu">
    <div class="list-group">
      <button type="button" class="list-group-item keep-Open">Cras justo odio</button>
      <button type="button" class="list-group-item keep-Open">Dapibus ac facilisis in</button>
      <button type="button" class="list-group-item keep-Open">Morbi leo risus</button>
      <button type="button" class="list-group-item keep-Open">Porta ac consectetur ac</button>
      <button type="button" class="list-group-item keep-Open">Vestibulum at eros</button>
    </div>
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)