Подтвердить что ты не робот

Событие jQuery bind popstate не передается

Я кодирую небольшую демоверсию для API истории. И я борюсь с этим:

$(window).bind('popstate',  
    function(event) {
        console.log('pop: ' + event.state);
    });

Он записывает "pop: undefined", когда я нажимаю кнопку "Предыдущая"...

Но если я это сделаю, все будет работать так, как ожидалось:

window.onpopstate = function(event) {
    console.log('pop: ' + event.state);
};

На этот раз он записывает "pop: [object Object]"...

Так как jQuery не передает объект события обратному вызову.
Есть ли проблема с jQuery? Или я что-то испортил?

4b9b3361

Ответ 1

В первом случае вы получаете нормализованный объект события jQuery. Во втором случае вы получаете объект события браузера. Я предполагаю, что jQuery не завершил нормализацию всех новых событий HTML5 и связанных с ними атрибутов. До тех пор вам понадобится доступ к исходному объекту события. Вы можете сделать это через объект события jQuery через свойство originalEvent. Вы можете найти дополнительные сведения и примеры здесь: fooobar.com/info/208120/...

event.originalEvent.state