0
我有一個Bootstrap手風琴,以及一個擴展了所有手風琴面板的按鈕。這工作正常。確定引起自舉事件的原因
HTML:
<div class="btn btn-primary btn-sm" id="accordion-expand-all">Expand all</div>
JS:
$("#accordion-expand-all").click(function() {
$(".panel-collapse").each(function() {
if ($(this).hasClass("in") === false) {
$(this).collapse("toggle");
};
});
});
問題:
我想使它這樣,當一個用戶點擊面板的標題,如果手風琴面板被摺疊,那麼面板e xpands ... 和窗口向下滾動,手風琴面板的標題位於頁面的頂部。
一個簡單的方法是將一些函數調用到引導程序shown.bs.collapse
事件中,如pageScrollToTop(expandedPanel)
。但是這與「全部展開」按鈕相沖突,每次展開手風琴面板時都會產生shown.bs.collapse
,從而在整個位置滾動頁面。
我知道這是件不可思議的事,但是當復活的是shown.bs.collapse
事件,是有確定它是否是由用戶的點擊提出,對被編程募集的方式(如「全部展開」按鈕) ?如果是這樣,我的網站會知道什麼時候不要致電pageScrollToTop()
。
這是一個類似的方法,我結束了使用的解決方法:我連着一個單擊處理手風琴面板頭,並創建了一個「模擬」'秀。之後滾動頁面的bs.collapse'事件(我在Bootstrap的本地代碼中窺探了如何做到這一點)。按鈕只是迭代手風琴面板並調用'$(「#foo-panel」)。collapse(「toggle」)',這引發了真正的show.bs.collapse事件。 – alex