【问题标题】:jQuery bind popstate event not passedjQuery绑定popstate事件未通过
【发布时间】:2012-05-05 05:05:06
【问题描述】:

我正在为 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 有问题吗?还是我搞砸了什么?

【问题讨论】:

标签: jquery html html5-history


【解决方案1】:

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

event.originalEvent.state

【讨论】:

  • 不错的收获!我在询问之前搜索时没有看到这个问题:(
  • 谢谢!我想完全归功于这次捕获,但 stackoverflow 为我做到了。我碰巧在右边距的相关列表中注意到它。在您的开发工作中一切顺利!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-01-19
  • 1970-01-01
  • 2011-06-08
  • 1970-01-01
  • 1970-01-01
  • 2011-01-01
  • 2010-11-29
相关资源
最近更新 更多