2
可能是最好的例子来说:如何使用Jquery隐藏隐藏选项卡上的子元素,并隐藏它直至隐藏它?
<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工具“选项卡”工具。这将切换上面两个div的可见性,以便一次只显示一个div。
的问题是如下:
在用户切换到标签2.这隐藏标签-1和字段1至3 这也说明选项卡-2和其孩子,字段4到6.
用户在选项卡2上执行操作,该选项卡应从现在隐藏的选项卡1中删除字段2。我使用
$('#field-2').hide(0);
这应该隐藏字段中的两个,但什么都不做,因为第二场已经隐藏。现在很好。
3.用户切换回制表符-1。
实际结果: 所有三个字段,包括字段2,现在都可以再次看到。
期望的结果: 字段1和3,现在可见的,但切换到制表1中未确实取消隐藏字段2,因为它是明确的函数隐藏。字段2应该保持隐藏状态,直到显式取消隐藏。
我想我可以通过为display:none;
指定一个特殊的css类来避开这个问题,但我想知道是否有更好的解决方案来独立显示/隐藏该元素所在的选项卡,而无需分配额外的CSS类。
这工作,谢谢。尽管自从.hide()方法以来它的奇怪之处在于......同样的事情...... – Nick
@Nick我的猜测是,'hide'首先检查元素在它做什么之前是否可见。如果不是(例如,如果它的父母已经隐藏),那么它什么都不做?当然,为什么不呢。 – sdleihssirhc