抱歉,是否曾经有人问过。
我有一个脚本,当选中该复选框时,该脚本可从父级添加/删除类。工作良好。
但是,当我将复选框更改为单选框(在脚本和HTML中)时,脚本仅将类添加到父级-在选择另一个单选框时,它不会将其删除。
抱歉,我对JS非常陌生,无法解决。
Fiddle here http://jsfiddle.net/RussellJones/Lh1ymzax/1/
复选框的自定义类基于此codepen,这就是HTML以这种方式格式化的原因。
http://codepen.io/lavoiesl/pen/rjcIx
感谢您提供的任何帮助!
最佳答案
您可以使用.siblings()
查找同级并删除其类。还有两件事:
1)除了使用.parent().parent().parent().
,您还可以简单地使用.closest()
并传递您要定位的类。这将向上遍历DOM,并找到您要查找的class
。如果您将另一个父级添加到HTML,它也将仍然有效
2)您现在不需要else
语句,因为单击时将要从另一个.selectable-row
中删除该类
$(document).ready(function() {
$('input:radio').change(function(){
if($(this).is(":checked")) {
$(this).closest(".selectable-row").addClass("selected-row").siblings(".selectable-row").removeClass("selected-row");
}
});
});
FIDDLE
正如Jack所指出的,您可以通过在CSS中将
overflow
设置为auto
或hidden
上的.selectable-row
来解决浮动问题。更新了我的小提琴以进行反思。