Я очень близок к тому, чтобы получить значение при нажатии кнопки ИЛИ элемент из выпадающего списка, но я бы хотел, чтобы моя функция ничего не ждала или не печатала, когда пользователь выбирает OTHER
кнопка, потому что это означает, что значение будет получено из выпадающего списка
Я также не совсем уверен, что написанный мной код JS является самым элегантным. Помимо удаления undefined
Я также надеялся получить помощь в рефакторинге кода?
Любая помощь приветствуется !!
var header = document.getElementById("test");
var btns = header.getElementsByClassName("btn");
for (var i = 0; i < btns.length; i++) {
btns[i].addEventListener("click", function() {
var current = document.getElementsByClassName("active");
current[0].className = current[0].className.replace(" active", "");
this.className += " active";
// Set results to value, unless it's other
// then set to the value of the selected dropdown
document.getElementById("results").innerHTML = $(this).attr("value")
});
}
$(".dropdown-item").click(function () {
var value = $(this).attr("value");
document.getElementById("results").innerHTML = value
});
.btn-grey {
border: none;
outline: none;
padding: 10px 16px;
background-color: #f1f1f1;
cursor: pointer;
font-size: 18px;
}
/* Style the active class, and buttons on mouse-over */
.active, .btn-secondary:hover {
background-color: #666;
color: white;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/>
<div id="test">
<div class="btn-group" role="group">
<button class="btn btn-grey active", type="button", value="NONE">NONE</button>
<button class="btn btn-grey", type="button", value="A">A</button>
<button class="btn btn-grey", type="button", value="B">B</button>
<button class="btn btn-grey", type="button", value="C">C</button>
<div class="btn-group" role="group">
<button id="btnGroupDrop1" type="button" class="btn btn-grey dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
OTHER <span class='caret'></span>
</button>
<div class="dropdown-menu" aria-labelledby="btnGroupDrop1">
<a class="dropdown-item" href="#3" value="3">3</a>
<br>
<a class="dropdown-item" href="#2" value="4">4</a>
</div>
</div>
</div>
<div id="results"></div>
Codepen также включен, если это проще: https://codepen.io/mayagans/pen/dyoppZK