jQuery绑定popstate事件未通过

时间:2012-04-24 14:25:22

标签: jquery html5 html5-history

我正在为History 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有问题吗?或者我弄乱了什么?

1 个答案:

答案 0 :(得分:36)

在第一个实例中,您将获得一个规范化的jQuery事件对象。在第二个实例中,您将获得浏览器的事件对象。我假设jQuery尚未完成所有新HTML5事件和相关属性的规范化。在此之前,您需要访问原始事件对象。您可以通过originalEvent属性通过jQuery事件对象执行此操作。您可以在此处找到一些其他详细信息和示例:stackoverflow.com/questions/7860960/popstate-returns-event-state-is-undefined

event.originalEvent.state