jQuery: добавление класса к элементу li после щелчка по ссылке и отмена выбора всех других классов - PullRequest
1 голос
/ 12 марта 2010

Я создаю меню с такими тегами:

<div class="animatedtabs">
  <ul>
    {% for item in menu_items %}
    <li><a href="{{ item.url }}" title="{{ item.name }}"><span>{{ item.name }}</span></a></li>
    {% endfor %}
  </ul>
</div>

Что я хочу сделать, я хочу добавить class = "selected" в li после щелчка по ссылке и удалить все остальные class = "selected" в других li ...

Также мне интересно, как показать меню таким образом, чтобы первый элемент был выбран по умолчанию ... Но потом, когда нажимается другая ссылка, переключается class = "selected"

Ответы [ 5 ]

2 голосов
/ 12 марта 2010
    $(function() {


    $('.animatedtabs ul a').click(function() {

         $('.animatedtabs ul a').removeClass('selected');
         $(this).addClass('selected');

        return false;
    }).filter(':first').click();
});

это сделает все, что вы просили, реальным! ; -)

1 голос
/ 13 марта 2010

Есть вопрос по меню навигации в Django: Навигация в Джанго

Этот ответ является хорошим примером использования тега шаблона для добавления классов к элементам li. Навигация в Джанго

1 голос
/ 12 марта 2010

Как это:

$('.animatedtabs li a').click(function() {
    $('.animatedtabs li').removeClass('selected');
    $(this).closest('li').addClass('selected');
    //Do something
    return false;
});
0 голосов
/ 13 марта 2010

Я бы сказал, что еще более элегантный метод выглядит следующим образом:

$(function() {

    // Make the first list item selected
    $('.animatedtabs li:first').addClass('selected');

    // The first item is automatically deselected when another is clicked
    $('.animatedtabs li').click() {

        // Make the current li selected
        $(this).addClass('selected');

        // Remove the selected class from any currently selected sibling items
        $(this).siblings('.selected').removeClass('selected');

        return false;
    }

});

Я использовал этот метод, когда недавно создавал прямую копию окна поиска Mac OS, используя только jQuery HTML и CSS для проекта, над которым я работаю, и он работает волшебным образом.

0 голосов
/ 12 марта 2010

Просто удалите «selected» из строки класса all <li> элементов, а затем добавьте его к элементу, по которому щелкнули.

$('li.foo').click(function(li) {
  $('li').removeClass('selected');
  $(this).addClass('selected');
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...