Dla tych, którzy używają Ruby on Rails lub jakiegokolwiek innego skryptu po stronie serwera, będziesz chciał użyć anchor
opcji na ścieżkach. Dzieje się tak, ponieważ po załadowaniu strony nie ma dostępnego skrótu adresu URL. Będziesz chciał podać właściwą kartę za pośrednictwem łącza lub przesłanego formularza.
<%= form_for @foo, url: foo_path(@foo, anchor: dom_id(foo)) do |f| %>
# Or
<%= link_to 'Foo', foo_path(@foo, anchor: dom_id(foo)) %>
Jeśli używasz prefiksu, aby zapobiec przeskakiwaniu okna do id:
<%= form_for @foo, url: foo_path(@foo, anchor: "bar_#{dom_id(foo)}") do |f| %>
Następnie CoffeeScript:
hash = document.location.hash
prefix = 'bar_'
$('.nav-tabs a[href=' + hash.replace(prefix, '') + ']').tab 'show' if hash
$('.nav-tabs a').on 'shown.bs.tab', (e) ->
window.location.hash = e.target.hash.replace '#', '#' + prefix
Lub JavaScript:
var hash, prefix;
hash = document.location.hash;
prefix = 'bar_';
if (hash) {
$('.nav-tabs a[href=' + hash.replace(prefix, '') + ']').tab('show');
}
$('.nav-tabs a').on('shown.bs.tab', function(e) {
window.location.hash = e.target.hash.replace('#', '#' + prefix);
});
To powinno działać w Bootstrap 3.