2017-05-20 5 views
0

私はthis tutorialの後ろに、ブーストラップ文書からサイドメニューを複製しました。Turbolinks and Scrollspy

すべてがうまくいくようですが、アンカータグをサブメニューからクリックすると、現在のサブメニューが折りたたまれます。次のサブメニューセクションにスクロールすると、サブメニューのバックアップが開き、再び正しく機能します。ただし、クリックしたアンカータグにスクロールすると、サブメニューが再び折りたたまれます。

ターボリンクをオフにするとこれが解決されることが確認されましたが、ターボリンクを維持しながらこれに対処したいと考えていました。

答えて

1

残念ながら、私はあなたが経験している動作を再現できませんでした。したがって、共有できる例があれば、それは助けになります。

Turbolinksが同じページのアンカーを処理する方法にバグが発生している可能性があります。現在、要素をスクロールするのではなく、ページをリロードしてから要素にスクロールします。このバグは、Turbolinksリポジトリのhttps://github.com/turbolinks/turbolinks/issues/75に記載されています。

$(document).on('turbolinks:click', function (event) { 
    if (event.target.getAttribute('href').charAt(0) === '#') { 
    return event.preventDefault() 
    } 
}) 

わずかな欠点は、このボタンのバックナンバーを引き起こす可能性があるということである。一つの可能​​な解決策は、Turbolinksは、同じページのアンカークリックでページをリロード防ぐためです。それ以外の場合は、ページが読み込まれた後に.scrollspy('refresh')を呼び出してテストすることができます(http://getbootstrap.com/javascript/#scrollspy-methods参照)。

関連する問題