jQuery绑定popstate事件未通过
Posted
技术标签:
【中文标题】jQuery绑定popstate事件未通过【英文标题】:jQuery bind popstate event not passed 【发布时间】: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 有问题吗?还是我搞砸了什么?
【问题讨论】:
哪个浏览器?你见过***.com/questions/4688164/window-bind-popstate 了吗? 感谢您的评论,它帮助我更好地理解问题所在,所以我改变了一点我的问题。它与您指出的不一样,因为它在第一次加载时没有问题。 【参考方案1】:在第一个实例中,您将获得一个规范化的 jQuery 事件对象。在第二种情况下,您将获得浏览器的事件对象。我假设 jQuery 还没有完成对所有新的 html5 事件和相关属性的规范化。在此之前,您需要访问原始事件对象。您可以通过 originalEvent 属性通过 jQuery 事件对象执行此操作。您可以在此处找到一些其他详细信息和示例:***.com/questions/7860960/popstate-returns-event-state-is-undefined
event.originalEvent.state
【讨论】:
不错的收获!我在询问之前搜索时没有看到这个问题:( 谢谢!我想完全归功于这次捕获,但 *** 为我做到了。我碰巧在右边距的相关列表中注意到它。在您的开发工作中一切顺利!以上是关于jQuery绑定popstate事件未通过的主要内容,如果未能解决你的问题,请参考以下文章
防止浏览器在 HTML5 History popstate 上滚动
jquery mobile+html5 写的页面 如何禁用手机后退按钮。或者说如何禁用页面后退。