Jquery 在包含/排除按钮组之间切换活动类
我有一个提供过滤器列表的应用程序 每个过滤器都有一个“包括”和“排除”按钮,例如:Jquery 在包含/排除按钮组之间切换活动类,jquery,html,css,Jquery,Html,Css,我有一个提供过滤器列表的应用程序 每个过滤器都有一个“包括”和“排除”按钮,例如: <input type="button" name="include_337" value="+"> <input type="button" name="exclude_337" value="-"> Filter 1 <input type="button" name="include_856" value="+"> <input type="button" n
<input type="button" name="include_337" value="+">
<input type="button" name="exclude_337" value="-"> Filter 1
<input type="button" name="include_856" value="+">
<input type="button" name="exclude_856" value="-"> Filter 2
在include和exclude按钮上都不能激活类。然而,我不知道该怎么做。此时,可以单击过滤器1上的+
,两者都将获得活动的类:
<input type="button" name="include_337" value="+">
<input type="button" name="exclude_337" class="active" value="-"> Filter 1
<input type="button" name="include_337" class="active" value="+">
<input type="button" name="exclude_337" class="active" value="-"> Filter 1
过滤器1
我想要的是像单选按钮一样有效,对于特定的过滤器,在任何时候都只能激活+
或-
。但是,这些必须是按钮元素,而不是单选按钮,因此我不想更改类型
属性
我已经看过了,但这是略有不同,因为它使用单选按钮,也取消选中所有其他复选框。在这种情况下,我希望它应用于过滤器组-即更改过滤器1不应影响过滤器2等。这是否可能?我在这里所做的是将每一对放在一个div中,该div具有一个.filterGroup
类。这意味着它们与其他组分开
除此之外,我还使用jQuery中的sides()
函数检查是否找到了类,然后将其删除。一旦有了活动类,您可以看到文本变为红色
$(“输入”)。单击(函数(){
var$this=$(this);
$this.toggleClass(“活动”);
if($this.sibles().hasClass(“活动”)){
$this.sides().removeClass(“活动”)
}
});代码>
input.active{
颜色:红色;
}
过滤器1
过滤器2
处理此问题最合理的方法是选中一个简单的复选框,打开或关闭过滤器。。。这听起来像是一个典型的设计师认为他们知道最好的需求。。。(从用户的角度来看,我希望显示+
/-
的按钮旨在增加/减少数值。).filterGroup
有什么意义吗?我没有,这只是一组输入,但实际上仍然有效。我真的不明白这是怎么可能的-它是针对最近的事物使用.active
还是其他什么?@Andy没有重大意义不,它只是一个div来分隔你拥有的组。jQuery然后查看.filterGroup
div中的输入同级。我知道这是为了将它们分开,但当它们只是作为一组庞大的输入列出来时(都包含在1div
中),这似乎仍然有效。所以我不确定它是如何工作的,但它确实如此@Andy它在没有div的情况下工作的原因是它将所有输入视为兄弟,但我假设您想要设置多个过滤器,所以只需将它们包装在div中:)