可能最好用一个例子来解释:
<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的可见性,以便一次只显示一个。
问题如下:
用户切换到标签2.这会隐藏标签-1和字段1到3。 这也显示了tab-2及其子节点,字段4到6。
用户在tab-2上执行操作,该操作应从现在隐藏的选项卡-1中删除字段2。我正在使用$('#field-2').hide(0);
这个应该隐藏第二个字段,但由于第二个字段已经被隐藏,所以什么都不做。那现在很好。
3.用户切换回tab-1。
实际结果: 包括字段2在内的所有三个字段现在都可以再次显示。
期望的结果: 字段1和3现在可见,但切换到tab-1不会取消隐藏字段2,因为它被一个函数显式隐藏。字段2应保持隐藏,直到明确取消隐藏。
我想我可以通过使用display:none;
为字段分配一个特殊的css类来绕过这一点,但我想知道是否有一个更好的解决方案来显示/隐藏元素的选项卡。没有分配额外的CSS课程。
答案 0 :(得分:1)
如果您实际更改了元素的display
样式,而不是使用hide
,则它似乎有效:
$('selector').css('display', 'none');