我使用一个表,行可以有子行,它可以下降几个级别, 现在发生的事情是,当隐藏子元素时,它会打开该子元素元素。
继承我的jQuery:
$(document).ready(function() {
function getChildren($row) {
var children = [], level = $row.attr('data-level');
while($row.next().attr('data-level') > level) {
children.push($row.next());
$row = $row.next();
}
return children;
}
$('.parent').on('click', function() {
var children = getChildren($(this));
$.each(children, function() {
$(this).toggle();
})
});
$(".parent a").click(function(e) {
e.stopPropagation();
})
})
我已经设置了一个jsfiddle,你可以看到发生了什么
https://jsfiddle.net/rhvye8k0/4/
如果您点击第一个" +"你会看到我试图描述的内容。
无法思考如何解决问题
更新
对其进行了排序并更新了jsfiddle https://jsfiddle.net/rhvye8k0/5/
可能有一种方法可以减少jQuery,但它现在可以使用
答案 0 :(得分:0)
您的问题是$(this).toggle();
的onclick处理程序中的.parent
。第3级的tr
有style="display:none"
,其他则没有。 toggle()
将切换接收元素的可见性,以便显示其他元素(其display
隐式block
),并隐藏第3级。