我有一个网站的脚本。当您单击链接时,它会切换页面,并且使用jquery中的toggleClass方法也会切换链接本身。
脚本运行得很好,但是页面是一个接一个地加载,所以我对它做了一些修改。如果你第一次点击一个链接,链接就会改变(变大),页面就会出现。链接的值存储在一个变量(previousClick)中。现在,如果我点击第二个链接,前一页就消失了,新的一页出现了。这可以很好地工作。但之前的链接仍然更大。我找不到如何将其还原为较小的字体...
代码如下:
var pages = function()
{
var nav = $( 'ul#nav li a' );
var previousClick = '';
nav.click( function()
{
if (previousClick.length==0)
{
$( this ).parent().toggleClass( 'selected' );
$( $( this ).attr( 'href' ) + '-page' ).toggle( 500 );
previousClick = $( this ).attr( 'href' );
return false;
}
else
{
$('li a [href=' + previousClick + ']').toggleClass( 'selected' );
$( previousClick + '-page' ).toggle( 500 );
$( this ).parent().toggleClass( 'selected' );
$( $( this ).attr( 'href' ) + '-page' ).toggle( 500 );
previousClick = $( this ).attr( 'href' );
return false;
}
});
};
$( window ).load( pages );css:
ul#nav li { padding: 1px; }
ul#nav li a
{
font: italic normal 20px/normal 'Palatino Linotype', Georgia, Comic sans MS, Times, Serif;
text-decoration: none;
text-shadow: 0 1px 0 #000;
position: relative;
z-index: 3;
color: #fff;
display: block;
}
ul#nav li a span
{
font-size: 28px;
font-family: Baskerville, Palatino, 'Palatino Linotype', Georgia, Serif;
/*color: #3b0314;*/
color: #FEDB00;
}
ul#nav li a:hover,
ul#nav li.selected a
{
font-size: 200%;
}和html格式的菜单:
<ul id="nav">
<li id="star-top"></li>
<li><a href="#société"><span>Qui</span>sommes nous?</a></li>
<li><a href="#coachingé">Coaching<span>à</span>domicile</a></li>
<li><a href="#entrainementé"><span>Plan</span>d'entrainement</a></li>
<li><a href="#aquatiqueé"><span>Activités</span>aquatiques</a></li>
<li><a href="#entreprisé"><span>Espace</span>Entreprise</a></li>
<li id="star-bot"></li>
<li><a href="#contact">Contactez<span>nous</span></a></li>
<li><a href="#partenaire"><span>Nos</span>partenaires</a></li>
</ul>非常感谢
发布于 2011-01-09 03:38:26
我认为,因为您使用的是$( this ).parent().toggleClass( 'selected' );,所以还应该使用:
$('li a[href=' + previousClick + ']').parent().toggleClass( 'selected' );而不是
$('li a [href=' + previousClick + ']').toggleClass( 'selected' );编辑:
或者,更好的方法是:
$('#nav li:has(a[href=' + previousClick + '])').toggleClass('selected');我添加#nav是因为:has匹配所有的后代,而不仅仅是直接的子代。因此,如果您的#nav被包装在另一个<li>中,那么它的类也会被切换。
编辑:
啊,我现在明白了。这很微妙:a [href=...]的意思是“一个标签,它的属性为href,在a标签内的值为...”。因此,它将匹配<a><a href="..."></a></a>,这不是我们想要的。你应该使用a[href=...],不带空格。
https://stackoverflow.com/questions/4635718
复制相似问题