JQuery addClass не работает - PullRequest
       13

JQuery addClass не работает

0 голосов
/ 13 сентября 2009

Прежде всего, я проверил все ошибки новичка. Согласно Firebug, этот элемент не имеет установленного атрибута класса, пока не будет вызван addClass, а затем атрибут класса установлен на "".

Javacript:

$("#filter_banned").change(function(){
    if ($("#filter_banned").is(":checked")) $("#admin-userList").addClass("appliedFilter_banned");
    $("#admin-userList").removeClass("appliedFilter_banned");
})

вызывается addclass, а затем упаковывается в оповещения alert (e.length) 1, поэтому я знаю, что он не только находит admin-userList, но и вызывает if ify.

Кроме того, # admin-userList - это тег <ul>.

А теперь вот мой CSS:

.appliedFilter_banned .user.banned { display: none; }

Предполагается, что это просто список, отображающий всех пользователей сайта, и флажок, чтобы скрыть тех, кто был забанен.

Ответы [ 5 ]

3 голосов
/ 13 сентября 2009

Внимание, вы должны правильно написать ЕСЛИ:

$("#filter_banned").change(function(){

  var ul = $("#admin-userList");

  if ( $(this).is(":checked") ) {
    ul.addClass("appliedFilter_banned");
  } else {    
    ul.removeClass("appliedFilter_banned");
  }

})
3 голосов
/ 13 сентября 2009

Я мог бы что-то упустить, но похоже, что вы добавляете класс "appliedFilter_banned", а затем немедленно удаляете его. Вам не хватает else?

2 голосов
/ 13 сентября 2009

Я мог бы что-то здесь неправильно прочитать, но не в этой строке:

$("#admin-userList").removeClass("appliedFilter_banned");

просто удалить класс, который вы хотели установить сразу?

0 голосов
/ 13 сентября 2009

Пожалуйста, попробуйте:

$("#filter_banned").change(function(){


$("#filter_banned").is(':checked') ? $("#admin-userList").hide(): $("#admin-userList").show();

})
0 голосов
/ 13 сентября 2009

Используйте обработчик события щелчка вместо изменения.

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