JQuery addClass无法正常工作

时间:2009-09-13 09:27:02

标签: jquery

首先,我检查了所有新手的错误。根据Firebug,该元素没有设置类属性,直到调用addClass,然后class属性设置为“”。

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 thingy。

此外,#admin-userList是<ul>标记。

现在这是我的CSS:

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

应该只是一个显示所有网站用户的列表,以及一个隐藏任何被禁止用户的复选框。

5 个答案:

答案 0 :(得分:3)

我可能会遗漏某些内容,但看起来您正在添加类"appliedFilter_banned",然后立即删除它。你错过了else吗?

答案 1 :(得分:3)

注意,你应该正确写出IF:

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

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

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

})

答案 2 :(得分:2)

我可能在这里读错了,但不是这一行:

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

直接删除你想要的课程?

答案 3 :(得分:0)

使用click事件处理程序而不是更改。

答案 4 :(得分:0)

请尝试:

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


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

})