如何使用 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 Tools“Tabs”工具。这会切换上面两个 div 的可见性,以便一次只显示一个。
问题如下:
用户切换到选项卡 2。这会隐藏选项卡 1 以及字段 1 到 3。 这还显示选项卡 2 及其子项、字段 4 到 6。
用户对选项卡 2 执行操作,该操作应从现在隐藏的选项卡 1 中删除字段 2。我正在使用
$('#field-2').hide(0);
这应该隐藏字段二,但什么也不做,因为字段二已经隐藏。现在就这样好了。
3.用户切换回选项卡1。
实际结果: 所有三个字段(包括字段 2)现在再次可见。
期望的结果: 字段 1 和 3 现在可见,但切换到 tab-1 不会取消隐藏字段 2,因为它已被函数显式隐藏。字段 2 应保持隐藏状态,直到明确取消隐藏为止。
我想我可以通过使用 display:none;
为字段分配一个特殊的 css 类来规避这个问题,但我想知道是否有更好的解决方案来独立于选项卡显示/隐藏该元素已打开,无需分配额外的 css 类。
Probably best to explain with an example:
<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>
I'm using the Jquery Tools "Tabs" tool. This toggles the visibility of the two divs above so that only one shows at a time.
The problem is as follows:
The user Switches to tab 2. This hides tab-1, and fields 1 through 3.
This also shows tab-2 and its children, fields 4 through 6.The user takes an action on tab-2 that should remove field 2 from the now hidden tab-1. I'm using
$('#field-2').hide(0);
This should hide field two, but does nothing since field two is already hidden. That's fine for now.
3.The user switches back to tab-1.
Actual result:
All three fields, including field 2, are now visible again.
Desired result:
Fields 1 and 3 are now visible, but switching to tab-1 does not un-hide field 2, since it was explicitly hidden by a function. Field 2 should stay hidden until explicitly unhidden.
I'm thinking I may be able to circumvent this by assigning a special css class to the field with display:none;
, but I was wondering if there's a better solution to show/hide independatly of the tab the element is on without assigning extra css classes.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您实际更改元素的
display
样式,而不是使用hide
,它似乎可以工作:It appears to work if you actually change the element's
display
style, instead of usinghide
: