1

我有一个表格,其中每一行都显示嵌套区域的数据。当我说嵌套时,我并不是指 HTML,而是指这些区域如何相互关联。包含多个区域的多个国家,这些区域又包含多个子区域(LA - 地方当局)。由于 LA 行太多,默认情况下它们是隐藏的。

我希望这些行的行为类似于 Windows 文件夹视图,其中单击区域将显示/隐藏它的 LA 行。单击国家名称将显示/隐藏其所有地区及其 LA。您之前在其他国家/地区显示/隐藏的任何内容都不会受到影响。

我通过 .nextUntil 方法在区域级别工作。我不知道如何解决的是,国家级别的相同方法不起作用,因为它按预期隐藏了区域,但它显示了隐藏的 LA,因为它只是使用了一个工具。

无论 LA 行是显示还是隐藏,有关如何单击国家名称隐藏区域及其 LA 的任何想法?再次单击时,可以很好地显示这些 LA 的先前状态,但不是必需的。全部关闭就好了。

在这里演示:http: //fluent-interaction.co.uk/temp/table/tabletest.html

我的 jQuery:

$(document).ready(function() {
$(".rowLA").hide();
$(".rowCountry th p").addClass("toggleClose");
$(".rowCountry th p").click(function() {
    $(this).closest(".rowCountry").nextUntil(".rowCountry").toggle();
    $(this).toggleClass("toggleClose");
});
$(".rowRegion th p").click(function() {
    $(this).closest(".rowRegion").nextUntil(".rowRegion, .rowCountry").toggle();
    $(this).toggleClass("toggleClose");
});

});

4

1 回答 1

1

尝试添加

$(this).closest(".rowCountry").nextUntil(".rowCountry",".rowLA").hide();

在此行之后:

$(this).closest(".rowCountry").nextUntil(".rowCountry").toggle();

这将隐藏该国家/地区内的所有 LA。

我想知道为什么您在所有语句中都使用了最接近()...!

于 2012-08-31T11:20:36.093 回答