我對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