【发布时间】:2012-09-12 01:06:14
【问题描述】:
我正在寻找做某事的最佳方式。我有一个不同类别的列表。所有列表项都是可点击的。我希望用户选择 1 到 3 个项目。
当他点击某个东西时,我会在 li 上添加一个选定的类。当他再次点击同一个项目时,它会删除类(ToggleClass())
我将整个事情包装在一个条件中,以计算有多少项目具有选定的类。这是我现在所在位置的小提琴:
我的问题是,当您选择了 3 个项目时,您不能“取消选择一个”,因为我的 if 语句阻止了它。这里有什么解决方案? (我也觉得这段代码真的不是最好的做法)
代码(与上面的 Fidlle 相同)
HTML
<ul>
<li class="chooseCategory16"><a onclick="test(16); return false;" href="#">test1</a></li>
...
</ul>
JS
function test(number) {
if ( $("li.selected").length <= 2) {
if( $("li.chooseCategory"+ number +"").hasClass("selected")) {
$("li.chooseCategory"+ number +"").removeClass("selected");
} else {
$("li.chooseCategory"+ number +"").addClass("selected");
}
}
}
【问题讨论】:
-
能否请您在此处添加相关代码?
-
好吧,显然你想检查是否达到最大值只有如果点击的元素没有已经有类。
-
在问题中也添加了代码
标签: jquery addclass toggleclass