以下是我想要发生的事情:当用户点击“mainNav”中的链接时,脚本会从相应的页面加载“subContent”div,并将其放在此页面的“mainContent”div中。 (这部分有效。)
如果加载了about,portfolio或contact页面,我希望“wrapper”div具有类“wrapUp”,但如果是home,则不是。
我不是一个程序员,但我正在尝试学习一些javascript和jQuery。我试图瞄准第一个链接,并删除“wrapUp”类,而其他人将添加它。请告诉我我做错了什么。
<div id="wrapper">
<img src="_images/LogoLG.png" id="logo" />
<div id="mainNav">
<ul>
<li><a href="home.html" title="home" >HOME</a></li>
<li>»</li>
<li><a href="about.html" title="about">ABOUT</a></li>
<li>»</li>
<li><a href="portfolio.html" title="portfolio">PORTFOLIO</a></li>
<li>»</li>
<li><a href="contact.html" title="contact">CONTACT</a></li>
</ul>
<!-- End Main Nav --></div>
<div id="mainContent">
<!-- End Main Content --></div>
<!-- End Wrapper --></div>
<script>
$("#mainNav ul a").live("click",function(e) {
var url = $(this).attr("href") + " #subContent";
if ($("a").is(":first")) {
$("#wrapper").removeClass("wrapUp");
} else {
$("#wrapper").addClass("wrapUp");}
$("#mainContent").hide().load(url).fadeIn("6000");
e.preventDefault();
});
答案 0 :(得分:1)
你快到了。而不是,
$('a').is(':first')
你应该使用
$(this).is(':first');
我也为你清理了剩下的代码:)享受。
$('#mainNav ul').delegate('a', 'click', function (e) {
var url = this.href + '#subContent',
isFirst = $(this).is(':first');
$('#wrapper').toggleClass('wrapUp', !isFirst);
$('#mainContent').hide().load(url).fadeIn(6000);
e.preventDefault();
});
答案 1 :(得分:1)
当你这样做时:
$("a").is(":first")
“a”选择器正在选择页面上的任何一个,而不是您点击的那个。您可能需要执行以下操作:
$(this).is("a:first-child")
或给链接一个id:
<a href="home.html" title="home" id="home">Home</a>
然后执行:
$(this).attr('id') == 'home'