我有一个带脚本的网站。 当您单击链接时,它会切换页面并使用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>
非常感谢
答案 0 :(得分:2)
我认为,因为您使用的是$( 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=...]
,没有空格。