#javascript #html #jquery #bootstrap-4 #drop-down-menu
#javascript #HTML #jquery #bootstrap-4 #выпадающее меню
Вопрос:
Я пытаюсь создать выпадающее меню, в котором будет отображаться любой вариант, который пользователь выберет с помощью bootstrap, но он не работает. Я установил точки останова внутри $(document).on("click", ".dropdown-menu li a", function () {
, $(".dropdown-menu li a").on("click", function () {
но они никогда не достигаются. HTML:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Sorting Algorithms</title>
<meta name="description" content="Sorting Algorithms">
<meta name="author" content="vader-coder">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"
integrity="sha384-q8i/X 965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH 8abtTE1Pi6jizo"
crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"
integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1"
crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"
integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM B07jRM"
crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css"
integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<!--<link rel="stylesheet" href="css/styles.css?v=1.0">-->
<script src="app.js"></script>
</head>
<body>
<nav class="navbar navbar-expand-lg navbar-light bg-light">
<button type="button" class="btn btn-primary">Show Algorithm</button>
<div class="dropdown">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown"
aria-haspopup="true" aria-expanded="false">
Array Length
</button>
<div class="dropdown-menu" id="arrayLength" aria-labelledby="dropdownMenuButton">
<a class="dropdown-item" href="#">20</a>
<a class="dropdown-item" href="#">10</a>
<a class="dropdown-item" href="#">5</a>
</div>
</div>
</nav>
<!--Div for graph-->
<div id="graph"></div>
</body>
</html>
Файл JavaScript ‘app.js ‘
$(document).ready(function () {
$('dropdown-toggle').dropdown();
});
$(".dropdown-menu li a").on("click", function () {
$(".btn:first-child").text($(this).text());
$(".btn:first-child").val($(this).text());
});
$(document).on("click", ".dropdown-menu li a", function () {
$(".btn:first-child").text($(this).text());
$(".btn:first-child").val($(this).text());
});
$("#arrayLength > a").on('click', function () {
$('#dropdownMenuButton').text($(this).val());
//$(this).parents(".btn-group").find('.selection').text($(this).text());
//$(this).parents(".btn-group").find('.selection').val($(this).text());
});
Комментарии:
1. Элемент
.dropdown-menu
не содержит никаких элементов списка, поэтому.dropdown-menu li a
ничего не будет соответствовать. Рассмотрите возможность использования.dropdown-menu a
вместо этого?
Ответ №1:
Я попытался заменить .dropdown-menu li a
на .dropdown-menu a
evolutionxbox, предложенный в комментариях, и это сработало.