jQuery - переключать класс родительского элемента? - PullRequest
4 голосов
/ 18 апреля 2010

У меня есть несколько элементов списка, например:

<li class="item">
    <a class="toggle"><h4>ämne<small>2010-04-17 kl 12:54 by <u>nike1</u></small></h4></a>
    <div class="meddel">
        <span>
            <img style="max-width: 70%; min-height: 70%;" src="profile-images/nike1.jpg" alt="" />
            <a href="account.php?usr=47">nike1</a>
        </span>

        <p>text</p>
        <span style="clear: both; display: block;"></span>
    </div>
</li>

<li class="item odd">
    <a class="toggle"><h4>test<small>2010-04-17 kl 15:01 by <u>nike1</u></small></h4></a>
    <div class="meddel">
        <span>
            <img style="max-width: 70%; min-height: 70%;" src="profile-images/nike1.jpg" alt="" />
            <a href="account.php?usr=47">nike1</a>
        </span>

        <p>test meddelande :) [a]http://youtube.com[/a]</p>
        <span style="clear: both; display: block;"></span>
    </div>
</li>

И я пытаюсь выяснить, как сделать так, чтобы при нажатии ссылки с классом .toggle родительский элемент (элемент li) переключал класс .current.

Я не уверен, что следующий код правильный или нет, но он не работает.

$(this).parent('.item').toggleClass('.current', addOrRemove);

Даже если я удалю "('.item')", это, похоже, не будет иметь никакого значения.

Итак, есть идеи?

Заранее спасибо

1 Ответ

7 голосов
/ 18 апреля 2010

toggleClass принимает имя класса, а не селектор. Следовательно, вы не должны включать ..
Измените его на toggleClass('current') (без .).

Кроме того, вы можете сделать свой код более надежным, вызвав closest вместо parent. closest будет искать самый внутренний родительский элемент, соответствующий селектору, поэтому он будет продолжать работать, если ссылка вложена в .item.

...