如果之前有人问过,请道歉。
我有一个脚本,当选中该复选框时,它会从父级添加/删除一个类。工作正常。
但是,当我将复选框更改为收音机(在脚本和HTML中)时,脚本仅将该类添加到父级 - 当选择另一个无线电时,它不会将其删除。
对不起,我是JS的新手,无法解决这个问题。
Fiddle here http://jsfiddle.net/RussellJones/Lh1ymzax/1/
复选框的自定义类基于此codepen,这就是HTML以这种方式格式化的原因。 http://codepen.io/lavoiesl/pen/rjcIx
感谢您提供任何帮助!
答案 0 :(得分:2)
您可以使用.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");
}
});
});
正如杰克指出的那样,你有一个浮动问题,可以通过在你的CSS中overflow
auto
或hidden
设置.selectable-row
来纠正。更新了我的小提琴以反映。