我对web dev相当陌生。我花了几天时间研究这个(令人尴尬的)并研究了我能想到的所有事情。为什么Jquery .show()在引导手风琴折叠内显示anchor div?
我使用的是Rails 5,bootstrap 3和jquery 2.1.3。
我有一个自举手风琴。在各种折叠内容div中,我希望链接到驻留在相同手风琴中但不同折叠面板的内容。
在电流崩塌面板我有这样一个链接:
<a class="self-link" href="#buried_sub_anchor">Buried Sub Anchor</a>
在不同的合拢面板我有内容的div像这样:
<div class="anchor" id="buried_sub_anchor">
我的jQuery代码来处理点击是:
$('.self-link').on('click', function() {expandCollapseWithHash(this.hash); });
function expandCollapseWithHash(hash) {
var $collapses = $(hash).parents('.collapse');
if ($collapses.length > 0) {
var $collapse = $collapses.first()
$collapse.collapse('show');
}
}
当.collapse('show')被调用时,我期待bootstrap神奇地关闭当前面板并打开目标。然后,一旦过渡完成,我期待“显示”事件,火灾,这是我处理这样的:
$('.collapse').on('shown.bs.collapse', function() {
if (location.hash) {
$(location.hash).show();
}
});
我期待.show()调用跳转页面右边在锚固DIV。但没有骰子。
总之,当我点击我要链接:
- 当前面板.collapse( '隐藏')
- 目标面板.collapse( '秀')
- 页面跳转到锚定格在目标面板
相反,总是:
- 当前面板不会改变(即它保持所示)
- 目标面板不显示
- 页面跳转到新的位置,但远不及所需的固定股利部分
我的问题是:
- 为什么不当前面板崩溃了?我期望引导手风琴功能可以通过拨打
$collapse.collapse('show')
来完成此操作。 - 为什么页面不滚动到链接的内容?
Here is a fiddle。要重现:
- 点击“更多详细资料”部分
- 滚动一路下降
- 方式点击“埋子锚”链接
非常感谢@Louys。这让我到了非常棒的右侧面板。但我还想滚动,直到“Buried Sub Anchor text”div正好位于页眉底部页面的顶部。我回答了我自己的问题......解决方案是一个无法解决的问题,这让我难以忘怀。另外在我的回答中,不仅是如何打开目标面板,还有如何关闭我们刚刚离开的折叠面板。 – davidh