如何使用Jquery在隐藏的选项卡上隐藏子元素,并保持隐藏直到我取消隐藏它?

时间:2011-11-13 23:41:54

标签: javascript jquery jquery-tools

可能最好用一个例子来解释:

<div id="tab-1">
  <input name="1" type="text" />
  <input name="2" type="text" />
  <input name="3" type="text" />
<div>
<div id="tab-2">
  <input name="4" type="text" />
  <input name="5" type="text" />
  <input name="6" type="text" />
<div>

我正在使用Jquery Tools“Tabs”工具。这会切换上面两个div的可见性,以便一次只显示一个。

问题如下:

  1. 用户切换到标签2.这会隐藏标签-1和字段1到3。 这也显示了tab-2及其子节点,字段4到6。

  2. 用户在tab-2上执行操作,该操作应从现在隐藏的选项卡-1中删除字段2。我正在使用$('#field-2').hide(0);

  3. 这个应该隐藏第二个字段,但由于第二个字段已经被隐藏,所以什么都不做。那现在很好。

    3.用户切换回tab-1。

    实际结果: 包括字段2在内的所有三个字段现在都可以再次显示。

    期望的结果: 字段1和3现在可见,但切换到tab-1不会取消隐藏字段2,因为它被一个函数显式隐藏。字段2应保持隐藏,直到明确取消隐藏。

    我想我可以通过使用display:none;为字段分配一个特殊的css类来绕过这一点,但我想知道是否有一个更好的解决方案来显示/隐藏元素的选项卡。没有分配额外的CSS课程。

1 个答案:

答案 0 :(得分:1)

如果您实际更改了元素的display样式,而不是使用hide,则它似乎有效:

$('selector').css('display', 'none');