Javascript-форум (https://javascript.ru/forum/)
-   (X)HTML/CSS (https://javascript.ru/forum/xhtml-html-css/)
-   -   History API + jQuery кнопки "назад" и "вперед" (https://javascript.ru/forum/xhtml-html-css/37615-history-api-jquery-knopki-nazad-i-vpered.html)

Мушег 26.04.2013 22:08

History API + jQuery кнопки "назад" и "вперед"
 
Добрый день. Мне нужно при нажатии на кнопку назад или вперед, перейти в соответствующее место. Не знаю как это можно делать с помощь History API, перечитал кучу примеров, но никак не могу разобраться. Вот мой код :
$(document).ready(function() {
    $('#login').on('click', showLoginForm);
    $('#container').on('click', '#registration', showRegistrationForm);
    
 
});
 
function showLoginForm() {
    var uri = $(this).attr('href');
 
    //создаем новую запись в истории только когда кликаем по ссылке
    history.pushState({uri: uri}, null, uri);
    $.ajax({
        url: '/site/login/',
        type: 'POST',
        success: function(response) {
            $('#container').empty();
            $('#container').html(response);
            history.pushState({reload: '#container'}, 'login', '/site/login/');
        }
    })
}
 
function showRegistrationForm() {
    $.ajax({
        url: '/users/create',
        type: 'POST',
        success: function(response) {
            $('#container').empty();
            $('#container').html(response);
            history.pushState({reload: '#container'}, 'registration', '/users/create');
        }
    })
    return false;
}


При смене контента с помощь ajax, я запоминаю историю таким образом
history.pushState({reload: '#container'}, 'registration', '/users/create');

Но не знаю на сколько это правильно.
Помогите пожалуйста, если не сложно. Спасибо!

danik.js 27.04.2013 05:17

Да ладно заливать. Так уж ни в одном примере не было обработчика события onpopstate объекта window ??

Мушег 27.04.2013 14:34

Они то были, но разобраться не могу. Мне просто нужно сделать это именно через jQuery а не чистым js. Если не сложно, помогите пожалуйста.

danik.js 27.04.2013 14:55

Цитата:

Сообщение от Мушег
Мне просто нужно сделать это именно через jQuery а не чистым js

Что это значит, поясните.

Мушег 27.04.2013 16:51

Цитата:

Что это значит, поясните.
Реализовать средствами библиотеки jQuery!

danik.js 27.04.2013 17:12

Цитата:

Сообщение от Мушег
Реализовать средствами библиотеки jQuery!

Разочарую вас: jQuery ничегошеньки не знает о History API ...

Мушег 27.04.2013 18:33

Цитата:

Сообщение от danik.js (Сообщение 248327)
Разочарую вас: jQuery ничегошеньки не знает о History API ...

Ты меня конечно удивил, но да ладно :)
Вот на пример у меня есть функция
$(window).bind('popstate', function(event) { 
      //функция
    });

Я так понимаю, что тут надо писать что делать если была нажата кнопка назад или вперед. Так вот, как мне определить, какая кнопка была нажата, и какой контент при этом нужно обновлять. Вот для меня это не ясно. Если это объясните, буду чрезмерно благодарен.


Часовой пояс GMT +3, время: 16:58.