如何在ul下拉菜单中显示选定的菜单项
How to display selected menu item in ul dropdown menu
我有一个显示字体颜色供用户选择的下拉菜单。目前,下拉列表显示 'style',但是我希望菜单标题显示当前选择的值。这是代码:
HTML:
<div id="font_dropdown" class="dropdown">
<nav id="primary_nav_wrap">
<ul>
<li class="current-menu-item"><a>
<li><a href="#">Style</a>
<ul class="font-names">
<li style="font-family: Raleway"><a>Raleway</a></li>
<li style="font-family: palatino"><a>Palatino</a></li>
<li style="font-family: impact"><a>Impact</a></li>
<li style="font-family: courier"><a>Courier</a></li>
<li style="font-family: Copperplate"><a>Copperplate</a></li>
<li style="font-family: Monospace"><a>Monospace</a></li>
<li style="font-family: Fantasy"><a>Fantasy</a></li>
<li style="font-family: Calibri"><a>Calibri</a></li>
<li style="font-family: Cursive"><a>Cursive</a></li>
<li style="font-family: Futura"><a>Futura</a></li>
<li style="font-family: Rockwell"><a>Rockwell</a></li>
<li style="font-family: Andale Mono"><a>Andale</a></li>
</ul>
</li>
</ul>
</nav>
</div>
CSS:
#primary_nav_wrap
{
margin-top:15px;
font-family:raleway;
}
#primary_nav_wrap ul
{
list-style:none;
position:relative;
float:left;
margin:0;
padding:0;
font-family:raleway;
}
#primary_nav_wrap ul a
{
display:block;
text-decoration:none;
font-weight:700;
font-size:12px;
line-height:32px;
padding:0 15px;
z-index:100;
}
#primary_nav_wrap ul li
{
position:relative;
float:left;
margin:0px;
padding:0;
z-index:100;
}
#primary_nav_wrap ul li.current-menu-item
{
background:#ddd;
color: orange;
z-index:100;
}
#primary_nav_wrap ul li:hover
{
background:#F3F4F5;
cursor: pointer;
color: orange;
z-index:100;
}
#primary_nav_wrap ul ul
{
display:none;
position:absolute;
top:100%;
left:0;
background:#fff;
padding:0;
z-index:100;
}
#primary_nav_wrap ul ul li
{
float:none;
z-index:100;
width:235px
}
#primary_nav_wrap ul ul a
{
line-height:120%;
padding:10px 10px;
text-align: left;
left: 100px;
z-index:100;
}
#primary_nav_wrap ul ul ul
{
top:0;
z-index:100;
left:100%
}
#primary_nav_wrap ul li:hover > ul
{
display:list-item;
color: orange;
z-index:100;
Javascript:
$(document).on("click", '.font-names li a', function() {
$("#imagewrap h3").css("font-family", $(this).parent().css("font-family"));
$("#new_tile_font_style").val($(this).parent().css("font-family"));
});
抱歉代码混乱,我对此比较陌生。
谢谢!
也许如果您将 class current-menu-item
添加到您想要 select 的 ul 中?
将点击事件处理程序绑定到您的 li
项并替换 li
的文本。
$('.font-names li').on('click', function () {
var $currentMenuItem = $('.current-menu-item a'),
currentText = $('a', this).text();
$currentMenuItem.text(currentText);
});
但是看起来你的 HTML
有点格式错误
<ul>
<li class="current-menu-item"><a> <----
<li><a href="#">Style</a> <----
<ul class="font-names">
必须根据它更改正确的选择器。
这里有一些使用 jQuery 的代码:
$(".font-names > li").click(function() {
$("#menutitle").text($(this).text());
});
您还需要向菜单标题元素添加 id
。
现场演示:
$(".font-names > li").click(function() {
$("#menutitle").text($(this).text());
});
#primary_nav_wrap
{
margin-top:15px;
font-family:raleway;
}
#primary_nav_wrap ul
{
list-style:none;
position:relative;
float:left;
margin:0;
padding:0;
font-family:raleway;
}
#primary_nav_wrap ul a
{
display:block;
text-decoration:none;
font-weight:700;
font-size:12px;
line-height:32px;
padding:0 15px;
z-index:100;
}
#primary_nav_wrap ul li
{
position:relative;
float:left;
margin:0px;
padding:0;
z-index:100;
}
#primary_nav_wrap ul li.current-menu-item
{
background:#ddd;
color: orange;
z-index:100;
}
#primary_nav_wrap ul li:hover
{
background:#F3F4F5;
cursor: pointer;
color: orange;
z-index:100;
}
#primary_nav_wrap ul ul
{
display:none;
position:absolute;
top:100%;
left:0;
background:#fff;
padding:0;
z-index:100;
}
#primary_nav_wrap ul ul li
{
float:none;
z-index:100;
width:235px
}
#primary_nav_wrap ul ul a
{
line-height:120%;
padding:10px 10px;
text-align: left;
left: 100px;
z-index:100;
}
#primary_nav_wrap ul ul ul
{
top:0;
z-index:100;
left:100%
}
#primary_nav_wrap ul li:hover > ul
{
display:list-item;
color: orange;
z-index:100;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="font_dropdown" class="dropdown">
<nav id="primary_nav_wrap">
<ul>
<li class="current-menu-item"><a>
<li><a id="menutitle" href="#">Style</a>
<ul class="font-names">
<li style="font-family: Raleway"><a>Raleway</a></li>
<li style="font-family: palatino"><a>Palatino</a></li>
<li style="font-family: impact"><a>Impact</a></li>
<li style="font-family: courier"><a>Courier</a></li>
<li style="font-family: Copperplate"><a>Copperplate</a></li>
<li style="font-family: Monospace"><a>Monospace</a></li>
<li style="font-family: Fantasy"><a>Fantasy</a></li>
<li style="font-family: Calibri"><a>Calibri</a></li>
<li style="font-family: Cursive"><a>Cursive</a></li>
<li style="font-family: Futura"><a>Futura</a></li>
<li style="font-family: Rockwell"><a>Rockwell</a></li>
<li style="font-family: Andale Mono"><a>Andale</a></li>
</ul>
</li>
</ul>
</nav>
</div>
JSFiddle 版本:https://jsfiddle.net/m129zd8m/
我有一个显示字体颜色供用户选择的下拉菜单。目前,下拉列表显示 'style',但是我希望菜单标题显示当前选择的值。这是代码:
HTML:
<div id="font_dropdown" class="dropdown">
<nav id="primary_nav_wrap">
<ul>
<li class="current-menu-item"><a>
<li><a href="#">Style</a>
<ul class="font-names">
<li style="font-family: Raleway"><a>Raleway</a></li>
<li style="font-family: palatino"><a>Palatino</a></li>
<li style="font-family: impact"><a>Impact</a></li>
<li style="font-family: courier"><a>Courier</a></li>
<li style="font-family: Copperplate"><a>Copperplate</a></li>
<li style="font-family: Monospace"><a>Monospace</a></li>
<li style="font-family: Fantasy"><a>Fantasy</a></li>
<li style="font-family: Calibri"><a>Calibri</a></li>
<li style="font-family: Cursive"><a>Cursive</a></li>
<li style="font-family: Futura"><a>Futura</a></li>
<li style="font-family: Rockwell"><a>Rockwell</a></li>
<li style="font-family: Andale Mono"><a>Andale</a></li>
</ul>
</li>
</ul>
</nav>
</div>
CSS:
#primary_nav_wrap
{
margin-top:15px;
font-family:raleway;
}
#primary_nav_wrap ul
{
list-style:none;
position:relative;
float:left;
margin:0;
padding:0;
font-family:raleway;
}
#primary_nav_wrap ul a
{
display:block;
text-decoration:none;
font-weight:700;
font-size:12px;
line-height:32px;
padding:0 15px;
z-index:100;
}
#primary_nav_wrap ul li
{
position:relative;
float:left;
margin:0px;
padding:0;
z-index:100;
}
#primary_nav_wrap ul li.current-menu-item
{
background:#ddd;
color: orange;
z-index:100;
}
#primary_nav_wrap ul li:hover
{
background:#F3F4F5;
cursor: pointer;
color: orange;
z-index:100;
}
#primary_nav_wrap ul ul
{
display:none;
position:absolute;
top:100%;
left:0;
background:#fff;
padding:0;
z-index:100;
}
#primary_nav_wrap ul ul li
{
float:none;
z-index:100;
width:235px
}
#primary_nav_wrap ul ul a
{
line-height:120%;
padding:10px 10px;
text-align: left;
left: 100px;
z-index:100;
}
#primary_nav_wrap ul ul ul
{
top:0;
z-index:100;
left:100%
}
#primary_nav_wrap ul li:hover > ul
{
display:list-item;
color: orange;
z-index:100;
Javascript:
$(document).on("click", '.font-names li a', function() {
$("#imagewrap h3").css("font-family", $(this).parent().css("font-family"));
$("#new_tile_font_style").val($(this).parent().css("font-family"));
});
抱歉代码混乱,我对此比较陌生。 谢谢!
也许如果您将 class current-menu-item
添加到您想要 select 的 ul 中?
将点击事件处理程序绑定到您的 li
项并替换 li
的文本。
$('.font-names li').on('click', function () {
var $currentMenuItem = $('.current-menu-item a'),
currentText = $('a', this).text();
$currentMenuItem.text(currentText);
});
但是看起来你的 HTML
有点格式错误
<ul>
<li class="current-menu-item"><a> <----
<li><a href="#">Style</a> <----
<ul class="font-names">
必须根据它更改正确的选择器。
这里有一些使用 jQuery 的代码:
$(".font-names > li").click(function() {
$("#menutitle").text($(this).text());
});
您还需要向菜单标题元素添加 id
。
现场演示:
$(".font-names > li").click(function() {
$("#menutitle").text($(this).text());
});
#primary_nav_wrap
{
margin-top:15px;
font-family:raleway;
}
#primary_nav_wrap ul
{
list-style:none;
position:relative;
float:left;
margin:0;
padding:0;
font-family:raleway;
}
#primary_nav_wrap ul a
{
display:block;
text-decoration:none;
font-weight:700;
font-size:12px;
line-height:32px;
padding:0 15px;
z-index:100;
}
#primary_nav_wrap ul li
{
position:relative;
float:left;
margin:0px;
padding:0;
z-index:100;
}
#primary_nav_wrap ul li.current-menu-item
{
background:#ddd;
color: orange;
z-index:100;
}
#primary_nav_wrap ul li:hover
{
background:#F3F4F5;
cursor: pointer;
color: orange;
z-index:100;
}
#primary_nav_wrap ul ul
{
display:none;
position:absolute;
top:100%;
left:0;
background:#fff;
padding:0;
z-index:100;
}
#primary_nav_wrap ul ul li
{
float:none;
z-index:100;
width:235px
}
#primary_nav_wrap ul ul a
{
line-height:120%;
padding:10px 10px;
text-align: left;
left: 100px;
z-index:100;
}
#primary_nav_wrap ul ul ul
{
top:0;
z-index:100;
left:100%
}
#primary_nav_wrap ul li:hover > ul
{
display:list-item;
color: orange;
z-index:100;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="font_dropdown" class="dropdown">
<nav id="primary_nav_wrap">
<ul>
<li class="current-menu-item"><a>
<li><a id="menutitle" href="#">Style</a>
<ul class="font-names">
<li style="font-family: Raleway"><a>Raleway</a></li>
<li style="font-family: palatino"><a>Palatino</a></li>
<li style="font-family: impact"><a>Impact</a></li>
<li style="font-family: courier"><a>Courier</a></li>
<li style="font-family: Copperplate"><a>Copperplate</a></li>
<li style="font-family: Monospace"><a>Monospace</a></li>
<li style="font-family: Fantasy"><a>Fantasy</a></li>
<li style="font-family: Calibri"><a>Calibri</a></li>
<li style="font-family: Cursive"><a>Cursive</a></li>
<li style="font-family: Futura"><a>Futura</a></li>
<li style="font-family: Rockwell"><a>Rockwell</a></li>
<li style="font-family: Andale Mono"><a>Andale</a></li>
</ul>
</li>
</ul>
</nav>
</div>
JSFiddle 版本:https://jsfiddle.net/m129zd8m/