Я хочу, чтобы у объекта был один активный класс, если щелкнуть все ссылки, кроме 1-й, если щелкнуть 1-ую ссылку, ее следует удалить, если она активна. - PullRequest
1 голос
/ 19 октября 2011

Вот что я хочу сделать: когда пользователь щелкает ссылку в «mainNav», скрипт загружает div «subContent» с соответствующей страницы и помещает его в div «mainContent» на этой странице.(Эта часть работает.)

Я хочу, чтобы у div "wrapper" был класс "wrapUp", если загружены страницы about, портфолио или contact, но не в случае 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 ]

1 голос
/ 19 октября 2011

Когда вы делаете:

$("a").is(":first")

селектор "a" выбирает любые а на странице, а не ту, на которую вы нажали. Вам, вероятно, нужно сделать что-то вроде:

$(this).is("a:first-child")

или укажите для ссылки идентификатор:

<a href="home.html" title="home" id="home">Home</a>

и затем сделайте:

$(this).attr('id') == 'home'
1 голос
/ 19 октября 2011

Вы были почти там.Вместо

$('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();

});
...