Страницы

Поиск по вопросам

суббота, 8 февраля 2020 г.

Popstate jQuery

#jquery #html5


На сайте ajax навигация:
var nav = {
 go: function(url) {
  ...
  $.get(url, function(data) {
   $('#page').html(data);
  });
  ...
 }
}

test

Вот например на странице /test перед  размещаю:
$(window).bind('popstate', function() {
 alert(1);
});

И переходя на неё через nav.go(), а после, нажимаю кнопку "Назад", почему-то выскакивает
2 alert(1), хотя должен выскакивать 1.
Третий час не могу понять в чём проблема?    


Ответы

Ответ 1



Можно наверное добавить не анонимный обработчик как то так: ... var Handlers = {}; Handlers.popstate = null; ... if(!Handlers.popstate) { Handlers.popstate = function(){alert(1);} $(window).bind('popstate',Handlers.popstate); } ... Хотя, по идее должна быть проверка средствами jquery на наличие уже привязанного евента, но ща не помню её :-)

Ответ 2



Зачем чудо-велосипед, когда есть pathjs, который ещё и строку url установит, и у которого есть откат на хештеги, если браузер не поддерживает pushState?

Комментариев нет:

Отправить комментарий