这是我的代码。我想使用addClass
切换类,出于某些原因我不想使用toggleClass
。我遇到的问题是添加了名为selected
的css类,但未被not_selected
替换。isSelected=0
仅表示选择了td
。
<script type="text/javascript">
var isSelected = 0;
$("td").click(function(){
if(isSelected==0)
{
$(this).removeClass('not_selected');
$(this).addClass('selected');
isSelected=1;
}
});
$("td").click(function(){
if(isSelected==1)
{
$(this).removeClass('selected');
$(this).addClass('not_selected');
isSelected=0;
}
});
以下是我的css
代码:
.selected
{
background: black;
color:white;
font-weight: bold;
}
.not_selected
{
background: white;
color:black;
font-weight: normal;
}
答案 0 :(得分:1)
尝试将两者合并为一个功能。它是可能保证(感谢Barmar!)一个处理程序在另一个之前运行,然后自动将其切换回不需要的处理程序。这样,它将一举检查isSelected==0
和isSelected==1
。
$("td").click(function(){
if(isSelected==0)
{
$(this).removeClass('not_selected');
$(this).addClass('selected');
isSelected=1;
} else if(isSelected==1)
{
$(this).removeClass('selected');
$(this).addClass('not_selected');
isSelected=0;
}
});
答案 1 :(得分:1)
看看这个小提琴:http://jsfiddle.net/bukfixart/NYGh5/
问题是您的事件处理程序
$("td").click(function(){
if(isSelected==0)
{
$(this).removeClass('not_selected');
$(this).addClass('selected');
isSelected=1;
} else {
$(this).removeClass('selected');
$(this).addClass('not_selected');
isSelected=0;
}
});
你应该在一个回调函数中完成整个工作。不是两个。否则,这些功能会相互启用/禁用。