我希望有一个对象有一个类是活动的,如果只有第一个链接被点击,如果单击第一个链接,它应该被删除,如果活动

时间:2011-10-19 18:00:16

标签: jquery html css toggle

以下是我想要发生的事情:当用户点击“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();
});

2 个答案:

答案 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'