单击时如何切换跨度的内容
How to toggle the contents of span when clicked?
我有一个带有下拉菜单的导航栏。我在跨度内的下拉菜单前面有一个 +。我希望加号切换到 - 当菜单下拉时,当菜单打开(隐藏)时切换回 +。我该怎么做?
我的 HTML 看起来像
<nav>
<ul>
<li><a href="index.php">Home</a></li>
<li><a href="about.php">About</a></li>
<li class="shop"><a href="#"><span>+</span>Shop</a>
<ul class="shopList">
<li><a href="#">New Arrivals</a></li>
<li><a href="#">Dresses</a></li>
<li><a href="#">Jumpsuits</a></li>
</ul>
</li>
<li><a href="wholesale.php">Wholesale</a></li>
<li><a href="retailers.php">Retailers</a></li>
<li><a href="contact.php">Contact</a></li>
</ul>
</nav>
我目前正在使用 js 来下拉菜单。我可以添加到我当前的 js 中以实现此目的吗?我的js看起来像
$(document).ready(function() {
$('.shop').click(function() {
$('.shopList').slideToggle("fast");
});
});
这是我的 CSS
nav{
position:relative;
display:block;
width:70%;
margin:0;
padding:3px 15%;
border-top:1px solid #d0d0d0;
text-align:center;
font:15px 'OpenSans';
z-index: 999;
}
nav ul{
position:relative;
width:100%;
margin:0;
padding:0;
}
nav li{
display:inline-block;
margin:0 10px;
padding:0;
}
nav li ul li{
position:relative;
display:block;
width:150px;
margin:0;
padding:0;
}
.shopList{
position:absolute;
display:none;
width:100px;
margin:0 0 0 -50px;
padding:0;
}
nav a{
position:relative;
display:block;
width:auto;
margin:0;
padding:0;
color:#707070;
text-decoration:none;
}
一种解决方案是将以前的文本与新的文本进行比较:
$('.shop').click(function() {
$('.shopList').slideToggle("fast");
$("a span", this).text() == "+" ? $("a span", this).text("-") : $("a span", this).text("+");
});
nav {
position: relative;
display: block;
width: 70%;
margin: 0;
padding: 3px 15%;
border-top: 1px solid #d0d0d0;
text-align: center;
font: 15px'OpenSans';
z-index: 999;
}
nav ul {
position: relative;
width: 100%;
margin: 0;
padding: 0;
}
nav li {
display: inline-block;
margin: 0 10px;
padding: 0;
}
nav li ul {
display: none;
}
nav li ul li {
position: relative;
display: block;
width: 150px;
margin: 0;
padding: 0;
}
.shopList {
position: absolute;
display: none;
width: 100px;
margin: 0 0 0 -50px;
padding: 0;
}
nav a {
position: relative;
display: block;
width: auto;
margin: 0;
padding: 0;
color: #707070;
text-decoration: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
<ul>
<li><a href="index.php">Home</a>
</li>
<li><a href="about.php">About</a>
</li>
<li class="shop"><a href="#"><span>+</span>Shop</a>
<ul class="shopList">
<li><a href="#">New Arrivals</a>
</li>
<li><a href="#">Dresses</a>
</li>
<li><a href="#">Jumpsuits</a>
</li>
</ul>
</li>
<li><a href="wholesale.php">Wholesale</a>
</li>
<li><a href="retailers.php">Retailers</a>
</li>
<li><a href="contact.php">Contact</a>
</li>
</ul>
</nav>
相关文章:
- 单击时切换两个图像
- 使用单击函数中的jQuery切换元素
- 使用jQuery切换来显示内容,但防止在用户单击输入元素时关闭
- 切换单击angularjs上的单选按钮
- 幻灯片仅切换单击的元素
- 呈现隐藏的选项卡(在选项卡切换单击时)
- Jquery 切换/单击在早于 9 的 Safari 版本中不起作用
- 滑动切换 单击或悬停图像时显示段落
- 当我使用jQuery Mobile的UI时,如何在jQuery Mobile中切换单击的导航按钮颜色
- 切换单击jquery
- 根据宽度切换单击和悬停事件
- 如何切换单击的元素并隐藏所有其他元素
- 切换单击或隐藏
- 在长列表中的两个图像之间切换单击
- 切换单击,添加和删除类与Js
- 在两个css类之间切换单击
- Slide切换单击的父级的子类
- 仅切换单击的行,复选框使用JQuery
- 切换单击链接jquery时不关闭
- Jquery.切换类以不切换单击子项