Jquery добавление и удаление класса динамически - PullRequest
0 голосов
/ 13 января 2011

Я пытаюсь добавить класс «выбранный» при нажатии на ссылку, а когда пользователь нажимает на следующую ссылку, я хочу удалить ранее «выбранный» класс и добавить «выбранный» в ссылку, по которой щелкнули ..

-Спасибо заранее

$(document).ready(function() {
$('.news a').click(function(){
  $(this).addClass("selected");
});
});

<div class="news-w">
            <div class="news" id="getnews-1">
            <a href="#" >topic</a>
            </div>
            <div class="news" id="getnews-2">
            <a href="#">topic</a>
            </div>      
            <div class="news" id="getnews-3">
            <a href="#" >topic</a>
            </div>      
            <div class="news" id="getnews-4">
            <a href="#">topic</a>
            </div>      
            <div class="news" id="getnews-5">
            <a href="#">topic</a>
            </div>                      
    </div>

Ответы [ 5 ]

6 голосов
/ 13 января 2011
$(document).ready(function() {
    $('.news a').click(function(){
         $('.selected').removeClass('selected')
         $(this).addClass("selected");
    });
});
2 голосов
/ 13 января 2011

Попробуйте

$(document).ready(function() {
    $('div.news-w div.news a').click(function(){
       $('div.news-w div.news a.selected').removeClass("selected");
       $(this).addClass("selected");
    });
});

Также у вас неверный HTML. У вас есть более 1 элемента с одинаковым идентификатором.

1 голос
/ 12 октября 2017

Чтобы добавить эффект переключения при добавлении класса или идентификатора, используйте это.

$(document).ready(function() {
                var count = 1;
                $('#ddown').click(function(){
                count++;
                    if (count % 2 == 0) {
                         $('#ddown').addClass('dropup');
                         $('#ddown').removeClass("dropdown");
                    }else{
                        $('#ddown').removeClass("dropup");
                        $('#ddown').addClass("dropdown");
                    }
                });
            });

Да, я знаю, я пришел на вечеринку очень поздно.

1 голос
/ 13 января 2011

Другое альтернативное решение:

var prevLink = null;
$(document).ready(function() {
    $('.news a').click(function(){
         if(prevLink) prevLink.removeClass('selected');
         prevLink = $(this).addClass("selected");
    });
});
0 голосов
/ 13 января 2011

Вы можете использовать это:

$('.news a').click(function(){
$('.news-w').find('.selected').removeClass('selected');
$(this).addClass("selected");
});

будет автоматически удалено, просто класс выбран в div class = 'news-w'

Если вы используете это:

$('.selected').removeClass('selected');

когда вы хотите добавить больше элемента a в DOM из div class = 'news-w' он тоже будет удален ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...