#javascript #jquery #html #css #drop-down-menu
#javascript #jquery #HTML #css #выпадающее меню
Вопрос:
Я создал выпадающее меню css, и когда я выбираю и выбираю из него, я хочу, чтобы он указывал выбранный параметр в раскрывающемся списке, но он показывает то же самое, что и, не меняется… Я использую jQuery, я думаю, что путаница связана с ul и li и с тем, какими должны быть мои селекторы.
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js" ></script>
<title></title>
<style>
.dropdown-menu {
padding: 0;
margin: 0;
width: 130px;
font-family: Arial;
display: inline-table;
position: relative;
border: solid 1px #CCCCCC;
border-bottom-style: none;
background-color: #F4F4F4;
}
.dropdown-menu .menu-item {
display: none;
}
.dropdown-menu .menu-item-link {
display: table-cell;
border-bottom: solid 1px #CCCCCC;
text-decoration: none;
color: rgba(89,87,87,0.9);
height: 30px;
padding: 5px;
vertical-align: middle;
cursor: pointer;
}
.dropdown-menu:hover .menu-item {
border-bottom-style: solid;
}
.dropdown-menu .menu-item-link:hover {
background-color: #DDDDDD;
}
.dropdown-menu:hover .menu-item {
display: table-row;
}
.dropdown-menu .menu-item.active {
display: table-header-group;
}
.dropdown-menu .menu-item.active .menu-item-link:after {
width: 0;
height: 0;
content: "";
position: absolute;
top: 12px;
right: 8px;
border-top: 4px solid rgba(0, 0, 0, 1);
border-left: 4px solid transparent;
border-right: 4px solid transparent;
}
</style>
</head>
<body>
<script>
$(document).ready(function(){
$("#account").click(function () {
alert($('.menu-item').val());
});
</script>
<ul class = "dropdown-menu">
<li class = "menu-item">
<a href = "#" class = "menu-item-link" id="account">account</a>
</li>
<li class = "menu-item">
<a href = "#" class = "menu-item-link" id="gametime">gametime</a>
</li>
<li class = "menu-item">
<a href = "#" class = "menu-item-link" id="RPA">Cereal</a>
</li>
<li class = "menu-item">
<a href = "#" class = "menu-item-link" id="workhard">workhard</a>
</li>
<li class = "active menu-item">
<a href = "#" class = "menu-item-link" id="puppies">puppies</a>
</li>
</ul>
</select>
</body>
</html>
Ответ №1:
вы должны сделать так:
$(".dropdown-menu .menu-item a").click(function () {
alert($(this).text());
$(".menu-item").removeClass("active"); // remove active class from li tags
$(this).closest("li").addClass("active"); // add active class to current clicked one
});
при щелчке по тегу привязки li get его текст val()
работает только для входных элементов формы, а ul, li и a не являются элементами ввода, которые вы должны использовать text()
, чтобы получить его значение и отобразить его как выбранный, добавьте активный класс к выбранному и удалите из других
Ответ №2:
Проверьте это http://jsfiddle.net/DsfU3/I внесли некоторые изменения в поля идентификатора малого и среднего бизнеса, просто посмотрите, может ли это вам помочь $(document).ready(function(){
$(".menu-item-link").on('click',function () {
$(".menu-item").removeClass("active");
$("#" $(this).text()).closest("li").addClass("active");
})
});