【发布时间】:2010-09-04 10:46:14
【问题描述】:
在我的页面上,大多数 h3 标题下的 p 部分都是隐藏的。如果单击它们,则会显示下面的内容。打开页面时仅显示第一部分。我使用 jQuery 来隐藏这些部分,例如:
jQuery("#area h3:first").addClass("active");
jQuery("#area p:not(:first)").hide();
但是,如果另一个部分中有一个锚点,并且用户在 url 的末尾用 # 链接到它,那该怎么办?现在,它跳到了隐藏部分,这很烦人,因为没有显示文本。当 url 中的锚点在此部分中时,我不想隐藏该部分,例如http://domain.com/page.php#anchor_in_section_3.
如何防止该部分隐藏/折叠?
详情: 在回答 1 之后,我发现了两个问题:如果您稍后使用 .hide 和 .show 仅一行代码,则这些部分仍然是隐藏的。这对 jQuery 来说似乎很快。 另一个问题是,如果使用答案 1 中描述的解决方案,jQuery 只会找到锚点,如果它不在子标签中。
这比我想象的要难:)
所以用文字描述的解决方案是,除了第一个部分和包含锚标记的部分之外的所有部分都应该隐藏。锚点可以在该部分的任何(子)标签中。
尝试了 2 小时将其转移到 jQuery 中,但我的 jQuery 知识很差,但没有成功。
【问题讨论】:
-
我已更新我的答案以解决这些问题,并添加了现场演示。见下文。