jQuery: удалить класс, если щелкнуть другой элемент
У меня есть ul-список, который содержит li-элементы. Когда пользователь нажимает на один из этих элементов li, класс должен быть добавлен к этому элементу.
Это легко настроить, однако, когда другой li-элемент нажат, я хочу, чтобы"активный" -класс был удален из неактивного li.
Я сделал jsfiddle проблемы: http://jsfiddle.net/tGW3D/
должен быть один li-элемент, который является красным в любой момент времени. Если щелкнуть второй и тогда первый, только первый должен быть красный.
8 ответов
это удалит активный класс из каждого li, которые имеют активный и чем добавит к элементу, который был нажат.
$('body').on('click', 'li', function() {
$('li.active').removeClass('active');
$(this).addClass('active');
});
можно использовать siblings
и removeClass
методы.
$('li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
просто удалите все экземпляры .active
сначала, а затем добавьте его:
$('ul li').on('click', function() {
$('ul li.active').removeClass('active');
$(this).addClass('active');
});
$('li').click(function() {
$(this).siblings().removeClass('active');
$(this).addClass('active');
});
Регистрация: http://jsfiddle.net/tGW3D/2/
что-то вроде этого?
вы можете использовать функцию братьев и сестер. addClass возвращает тот же объект jQuery $(this), поэтому вы можете связать братья и сестры метод, который возвращает все остальные элементы, кроме $(this).
$('li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
$('li').click(function() {
$(this).addClass('active'); // add the class to the element that's clicked.
$(this).siblings().removeClass('active'); // remove the class from siblings.
});
Если вы знаете jquery, вы можете связать его, как показано ниже.
$('li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
выше код будет делать трюк для вас. попробуйте эту демо
<script>
$(function() {
$('li').click(function() {
$("li.active").removeClass("active");
$(this).addClass('active');
});
});
</script>
вы меняете класс css этим кодом:
$('li').click(function() {
$(this).addClass('active').siblings().removeClass('active');
});
ссылке jsfiddle