Idąc do etykiety w adresie url mam #anchor
Dorzuciłem do layouts/app
<%= javascript_include_tag "menuleft", "application", "jquery-1.7.2.min", "lightbox-2.6.min", "jquery.scrollTo", "jquery.localscroll" %>
na początku body mam:
<script type="text/javascript">
$(document).ready(function() {
$.localScroll();
});
</script>
i później
<a href="#anchor">Skok do zadeklarowanej kotwicy</a>
…
<a id="anchor" href="index.html">przykładowy tekst</a>
niestety z urla nie usuwa mi #anchor (tylko w rails’ach, lokalnie wpliku .html działa)
firebug rzuca mi error (dla RoR):
TypeError: $.localScroll is not a function
może jest jakiś fajny prosty i dobrze opisany plugin / gem do rails’ów, który będzie działał (czy ktoś mi powie co mam źle) ?
TypeError: $.localScroll is not a function
oznacza, że plugin nie został poprawnie zainicjowany. Możesz mieć konflikt nazw (mało prawdopodobne, spróbuj w konsoli jQuery.localScroll()). Prawdopodobnie źle dołączasz bibliotekę, radzę użyć sprockets, czyli w application.js powinieneś mieć coś mniej-więcej takiego:
//= require menuleft
//= require jquery-1.7.2.min
//= require lightbox-2.6.min
//= require jquery.scrollTo
//= require jquery.localscrol
//= require_self
a w layouts/app
<%= javascript_include_tag "application" %>
Sprawdź w źródle wygenerowanej strony, czy wszystkie wyżej wymienione pliki są w sekcji head.
Dzięki za dobre rady. Wszystko wczytywał, problemem było
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js" %>
wczytywał mi 2 wersje jquery i to powodowało jakiś konflikt (wh mnie). Po usunięciu tej linii działa tak jak powinno dla takiego przykładu:
<a href="#anchor">Skok do zadeklarowanej kotwicy</a>
w przypadku gdy link odnosi się do innej strony np.
<a href="/oferta#anchor">Skok do zadeklarowanej kotwicy</a>
to w url’u zostaje #anchor
a wg pliku .js powinien go usuwać. Ktoś miał z tym problem ?
staram się usuwać #anchor
<script type="text/javascript">
$(function() {
var hash = location.hash.replace('#', '');
if (hash != '') {
location.hash.replace('#', '');
location.hash = '';
}
});
</script>
ale ciągle zostaje mi w adresie ’ # '. Dobrze kombinuje ? Czy jakoś inaczej do tematu mam podejść ?