Jquery событие для динамически изменяемого URL?

Доброго времени суток!

На сайте реализована поблочная прокрутка.
При смене блоков, в url добавляется номер блока, например site.ru#1, site.ru#2, site.ru#3 и т.п.

Нужно, чтобы при прокрутке к определенному блоку, например site.ru#4, т.е. при наличии #4 в url - срабатывало событие jquery.

Сейчас, отслеживаю #4 так:
$(document).ready(function(){ 
if (window.location.href.indexOf("#4") > -1){
//событие
} 
});


Но данное событие срабатывает, когда идет перезагрузка страницы с адресом site.ru#4

Как сделать, чтобы при прокрутке сайта site.ru#1, site.ru#2, site.ru#3, site.ru#4 - сработало событие.

Извините за сумбурность. Надеюсь понятно.

Заранее спасибо за помощь.
  • Вопрос задан
  • 282 просмотра
Пригласить эксперта
Ответы на вопрос 3
@Artray
window.addEventListener("hashchange", function(evt)  {
   // ...
}, false);
Ответ написан
KazeZlat
@KazeZlat
Погромист-затейник
$(document).ready(function(){ 
    $(window).on('hashchange', function(e){
        if (window.location.hash == '#4') {
            // Do smth
        }
    });
}
Ответ написан
dubr
@dubr
пыхарь
Лев Розанов, а вы свою ссылку читали для разнообразия? ))

afterMove(next_page_index)
This callback gets called after the move animation was performed.


$(".main").onepage_scroll({
    afterMove: function(index) {
      ...
    }
  });
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы