Переключение между классами по клику

Как добавлять и удалять класс каждый раз, когда я нажимаю?

Исходный код

HTML:

<div class="box"></div>

CSS:

.box{
  width: 100px;
  height: 100px; 
  background: blue;
}

Я хочу добавить:

.rounded {
  border-radius: 10px;
}

Я знаю, что мне нужно использовать функцию щелчка в блоке div, но я не знаю, как добавить класс и удалить его.

Отвечать:

Используйте класс переключения

$(".box").click(function(){
   $(this).toggleClass("rounded");
});

person Jtwa    schedule 07.06.2014    source источник


Ответы (4)


Вы не должны этого делать. Как насчет этого подхода вместо...

.box{
  width: 100px;
  height: 100px; 
  background: blue;
}

.box.rounded {
  border-radius: 10px;
}

Затем просто переключите «закругленный» класс с помощью toggleClass.

$('.box').toggleClass('rounded');
person Bill Criswell    schedule 07.06.2014

Другие решения просто переключаются между классами. Если вы хотите изменить существующий и добавить/удалить из него значения, используйте это:

$('.box').css('border-radius','50px');

и удалить:

$('.box').css('border-radius', '');

Рабочий пример.

person decho    schedule 07.06.2014
comment
Это то, что я искал! Спасибо! Я пока не могу поставить точку репутации. Это не позволит мне, но еще раз спасибо. - person Jtwa; 07.06.2014
comment
Нет проблем, я рад помочь. - person decho; 07.06.2014
comment
но вы все равно можете принять ответ, щелкнув знак «галочка». - person zaq; 07.06.2014
comment
Не знал этого! Сделанный! - person Jtwa; 07.06.2014

Jquery может удалить класс, однако не может изменить какой-либо CSS в классе:

$(target).addClass("myClass");
$(target).removeClass("myClass andThisOne removeSoManyClasses");

Чтобы перезаписать класс другим способом:

$("body").append("<style class='remove'>.box{/*many css*/}</style>");
$(".remove").remove();
person Daniel Cheung    schedule 07.06.2014

Да, это возможно.
Синтаксис добавления класса css следующий:

$(selector).addClass(classname)

Для удаления класса css используется синтаксис:

$(selector).removeClass(classname)

Рабочая скрипка

person Krishanu Dey    schedule 07.06.2014