Jquery 正在改变 (this) 的状态。parent 在收音机上 select
Jquery changing state of (this).parent on radio select
抱歉,如果之前有人问过这个问题。
我有一个脚本,当复选框被选中时,它 adds/removes 来自 parent 的 class。工作正常。
但是,当我将复选框更改为收音机时(在脚本和 HTML 中),脚本仅将 class 添加到 parent - 它不会选择另一个收音机时将其删除。
抱歉,我对 JS 很陌生,无法弄明白。
Fiddle here http://jsfiddle.net/RussellJones/Lh1ymzax/1/
复选框的自定义 class 是基于此代码笔的,这就是 HTML 以这种方式格式化的原因。
http://codepen.io/lavoiesl/pen/rjcIx
感谢您的帮助!
您可以使用 .siblings()
找到兄弟姐妹并删除他们的 class。还有两件事:
1) 您可以简单地使用 .closest()
并传递目标 class 而不是使用 .parent().parent().parent().
。这将向上遍历 DOM 并找到您要查找的 class
。如果您将另一位家长添加到 HTML
,它也仍然有效
2) 您现在不需要 else
语句,因为您将在单击
时从另一个 .selectable-row
中删除 class
$(document).ready(function() {
$('input:radio').change(function(){
if($(this).is(":checked")) {
$(this).closest(".selectable-row").addClass("selected-row").siblings(".selectable-row").removeClass("selected-row");
}
});
});
正如杰克指出的那样,您有一个浮动问题,可以通过将 overflow
设置为 auto
或 .selectable-row
中的 hidden
来纠正32=]。更新了我的 fiddle 以反映。
抱歉,如果之前有人问过这个问题。
我有一个脚本,当复选框被选中时,它 adds/removes 来自 parent 的 class。工作正常。
但是,当我将复选框更改为收音机时(在脚本和 HTML 中),脚本仅将 class 添加到 parent - 它不会选择另一个收音机时将其删除。
抱歉,我对 JS 很陌生,无法弄明白。
Fiddle here http://jsfiddle.net/RussellJones/Lh1ymzax/1/
复选框的自定义 class 是基于此代码笔的,这就是 HTML 以这种方式格式化的原因。 http://codepen.io/lavoiesl/pen/rjcIx
感谢您的帮助!
您可以使用 .siblings()
找到兄弟姐妹并删除他们的 class。还有两件事:
1) 您可以简单地使用 .closest()
并传递目标 class 而不是使用 .parent().parent().parent().
。这将向上遍历 DOM 并找到您要查找的 class
。如果您将另一位家长添加到 HTML
2) 您现在不需要 else
语句,因为您将在单击
.selectable-row
中删除 class
$(document).ready(function() {
$('input:radio').change(function(){
if($(this).is(":checked")) {
$(this).closest(".selectable-row").addClass("selected-row").siblings(".selectable-row").removeClass("selected-row");
}
});
});
正如杰克指出的那样,您有一个浮动问题,可以通过将 overflow
设置为 auto
或 .selectable-row
中的 hidden
来纠正32=]。更新了我的 fiddle 以反映。