我正在为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有问题吗?或者我弄乱了什么?
答案 0 :(得分:36)
在第一个实例中,您将获得一个规范化的jQuery事件对象。在第二个实例中,您将获得浏览器的事件对象。我假设jQuery尚未完成所有新HTML5事件和相关属性的规范化。在此之前,您需要访问原始事件对象。您可以通过originalEvent属性通过jQuery事件对象执行此操作。您可以在此处找到一些其他详细信息和示例:stackoverflow.com/questions/7860960/popstate-returns-event-state-is-undefined
event.originalEvent.state