0

我有一种情况,我在 jQuery 中有“嵌套”切换语句。

我有一堆选择,允许用户将一天设置为打开或关闭。

然后我有一个选择,允许用户显示所有日子的详细信息。默认情况下隐藏详细信息(这导致了我的问题)。

如果用户将某一天设置为关闭,我不想在用户选择显示所有天的详细信息时显示这一天。例如。如果星期一设置为关闭并且一周的其余时间是开放的并且用户选择“显示详细信息”,它将显示除星期一以外的所有日期的详细信息。

如果我从显示所有详细信息开始(您可以隐藏和显示详细信息并且不显示关闭日),这很好用。但默认情况下,详细信息是隐藏的,如果用户将某些天设置为关闭,然后显示详细信息,它会显示所有天的详细信息,甚至是关闭的天。

当包含 div 的切换发生更改时,是否有一种简单的方法可以保持“嵌套”切换?

我已经在这个 jFiddle 中整理了一个关于这种情况的粗略示例。

http://jsfiddle.net/yTt3t/16/

感谢您的任何帮助。

4

1 回答 1

1

实际上,问题在于您更改其可见性的元素的父元素最初是隐藏的。我假设 jQuery 执行了一些优化以避免不必要的 CSS 和 DOM 更改。

但是,如果您将布尔值传递给.toggle() [docs],它仍然有效,无论如何,IMO 更好,它确保元素的状态始终正确:

$("#monday_select").change(function(){
    $("#monday_details").toggle(this.value === 'Open');
});

$("#tuesday_select").change(function(){
    $("#tuesday_details").toggle(this.value === 'Open');
});

该参数控制元素是显示 ( true) 还是隐藏 ( false)。

演示

于 2012-04-11T00:30:24.043 回答