JQuery изменение класса CSS при смене флажка - PullRequest
1 голос
/ 21 ноября 2011

Я собрал несколько jQuery, чтобы изменить подсветку контейнера (по умолчанию красный, черный на чеке), когда установлен определенный флажок.Я чувствую, что этот код может быть упрощен, но не уверен, как.У кого-нибудь есть идеи, пожалуйста?

$("#container input:checkbox[id=cbTermsAndConditions]").change(function() {
   if ($(this).attr("checked")) {
     $('#container').addClass("containerblack");
     $('#container').removeClass("containerred");
   } else {
     $(this).parent().addClass("containerred");
     $(this).parent().removeClass("containerblack");
   }
});

Спасибо

Ответы [ 2 ]

1 голос
/ 21 ноября 2011

Немного чище:

$("#container input:checkbox[id=cbTermsAndConditions]").click(function() {
   var $this = $(this);
   if ($this.attr("checked")) {
     $('#container').toggleClass("containerblack containerred");
   } else {
     $this.parent().toggleClass("containerred containerblack");
   }
});

Кроме того, вы можете получить проверенное значение с помощью необработанного JavaScript, заменив оператор if на:

if(this.checked) 
1 голос
/ 21 ноября 2011

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

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