+ を - に変更するには、slideToggle アクションの次のコードを使用して、少し時間がかかります。
jQuery('.mean-nav ul ul').show();
if(meanToggleChildren){
jQuery('.mean-nav ul ul').hide();
if(jQuery('.mean-nav ul ul').length){
jQuery('<span class="mm-open-close">+</span>').insertBefore(jQuery('.mean-nav ul ul'));
jQuery('.mean-nav ul li').click(function(){
jQuery(this).find('ul').slideToggle('fast', function(){
$('.mm-open-close').text().toLowerCase().indexOf('-') != -1 ? $('.mm-open-close').text('+') : $('.mm-open-close').text('-');
});
});
}
}
+ を正しい位置に挿入していますが、(以下の html に従って) 両方の + を交換するため、スワップが正しく機能していないように見えます。
これは、jQuery 1.7.1 ライブラリ、meanMenu Responsive Nav プラグイン、および次の HTML を使用しています。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
/* hide the link until viewport size is reached */
a.meanmenu-reveal {
display: none;
}
/* when under viewport size, .mean-container is added to body */
.mean-container .mean-bar {
float: left;
width: 100%;
position: relative;
background: #0c1923;
padding: 4px 0;
min-height: 33px;
z-index:9000;
}
.mean-container a.meanmenu-reveal {
width: 22px;
height: 22px;
padding: 10px 10px 8px 10px;
position: absolute;
top: 0;
right: 0;
cursor: pointer;
color: #fff;
text-decoration: none;
font-size: 16px;
text-indent: -9999em;
line-height: 22px;
font-size: 1px;
display: block;
font-family: Arial, Helvetica, sans-serif;
font-weight: 700;
}
.mean-container a.meanmenu-reveal span {
display: block;
background: #fff;
height: 3px;
margin-top: 3px;
}
.mean-container .mean-nav {
float: left;
width: 100%;
background: #0c1923;
margin-top: 33px;
}
.mean-container .mean-nav ul {
width: 100%;
}
.mean-container .mean-nav ul li a {
display: block;
float: left;
width: 90%;
padding: .5em 5%;
margin: 0;
text-align: left;
color: #fff;
border-top: 1px solid #383838;
border-top: 1px solid rgba(255,255,255,0.5);
text-decoration: none;
text-transform: uppercase;
}
.mean-container .mean-nav ul li:first-child a {
border: none;
}
.mean-container .mean-nav ul li li a {
width: 80%;
padding: .5em 10%;
border-top: 1px solid #f1f1f1;
border-top: 1px solid rgba(255,255,255,0.25);
opacity: 0.75;
filter: alpha(opacity=75);
text-shadow: none !important;
visibility: visible;
}
.mean-container .mean-nav ul li li li a {
width: 70%;
padding: .5em 15%;
}
.mean-container .mean-nav ul li li:first-child a {
border-top: 1px solid #f1f1f1;
border-top: 1px solid rgba(255,255,255,0.25);
}
.mean-container .mean-nav ul li a:hover {
background: #252525;
background: rgba(255,255,255,0.1);
}
.mean-container .mean-push {
float: left;
width: 100%;
padding: 0;
margin: 0;
clear: both;
}
.mm-open-close{color:#fff;float:left;}
</style>
</head>
<body>
<header>
<nav>
<ul>
<li><a>Test</a></li>
<li><a>Test</a></li>
<li><a>Test</a>
<ul>
<li><a>Test</a></li>
<li><a>Test</a></li>
<li><a>Test</a></li>
<li><a>Test</a></li>
<li><a>Test</a></li>
</ul>
</li>
<li><a>Test</a> <ul>
<li><a>Test</a></li>
<li><a>Test</a></li>
<li><a>Test</a></li>
<li><a>Test</a></li>
<li><a>Test</a></li>
</ul>
</li>
<li><a>Test</a></li>
<li><a>Test</a></li>
</ul>
</nav>
</header>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script>
<script type="text/javascript" src="/mean.menu.js"></script>
<script type="text/javascript">
jQuery(document).ready(function($){
$('header nav').meanmenu({
meanScreenWidth: 800,
meanRevealPosition: "left",
meanShowChildren: true,
meanToggleChildren: true
});
});
</script>
</body>
</html>
セクションが切り替えられたときに + を - に適切にスワップするにはどうすればよいですか?