Mam ustawiony przesuwany panel na mojej stronie internetowej.
Po zakończeniu animacji ustawiłem hash w ten sposób
function() {
window.location.hash = id;
}
(to jest oddzwonienie, które id
zostało przypisane wcześniej).
Działa to dobrze, aby umożliwić użytkownikowi dodanie zakładek do panelu, a także aby działała wersja bez JavaScript.
Jednak kiedy aktualizuję skrót, przeglądarka przeskakuje do lokalizacji. Myślę, że jest to oczekiwane zachowanie.
Moje pytanie brzmi: jak mogę temu zapobiec? To znaczy, jak mogę zmienić hash okna, ale nie pozwolić przeglądarce przewinąć do elementu, jeśli hash istnieje? event.preventDefault()
Coś w tym rodzaju?
Używam jQuery 1.4 i wtyczki scrollTo .
Wielkie dzięki!
Aktualizacja
Oto kod, który zmienia panel.
$('#something a').click(function(event) {
event.preventDefault();
var link = $(this);
var id = link[0].hash;
$('#slider').scrollTo(id, 800, {
onAfter: function() {
link.parents('li').siblings().removeClass('active');
link.parent().addClass('active');
window.location.hash = id;
}
});
});
event.preventDefault()
:)