У меня есть группа кнопок со значками шрифтов и раскрывающимся списком на одной из них, как показано в примере ниже.
Я хочу переключить статус кнопки. Но на mouseout
класс .active
удаляется автоматически. Похоже, это связано с перехватом focus
-Event для всех классов .btn
в bootstrap.js
.
Это также происходит для $().button("toggle")
.
Как я могу обойти это?
A .btn-group-toggle
не работает здесь в сочетании с раскрывающимся списком.
$('#tools button').on('click', function () {
if (this.id == 'select') {
// FIXME: The active class gets removed immediatly somehow
$('#pencil').removeClass('active');
$('#select').addClass('active');
} else {
$('#pencil').addClass('active');
$('#select').removeClass('active');
}
});
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.8.2/css/all.min.css" rel="stylesheet"/>
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.3.1/css/bootstrap.min.css" rel="stylesheet"/>
<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://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<div class="btn-group-vertical d-flex" data-toggle="buttons role goup" id="tools">
<button type="button" class="btn btn-outline-secondary dropdown-toggle" id="pencil" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><i class="fas fa-pencil-alt" aria-hidden="true"></i></button>
<div class="dropdown-menu" aria-labelledby="pencil" x-placement="bottom-start" style="position: absolute; will-change: transform; top: 0px; left: 0px; transform: translate3d(0px, 38px, 0px);">
<p class="text-center">Stroke Width: <span id="pencilwidthtext">10</span></p>
<input type="range" class="custom-range" id="pencilwidth" value="10" min="1">
</div>
<button type="button" class="btn btn-outline-secondary" id="select" aria-pressed="false"><i class="fas fa-mouse-pointer" aria-hidden="true"></i></button>
</div>