简单地将窗口(在 jQuery 中)绑定(bind)到 popstate,事件总是被触发两次。
$( window ).bind( 'popstate', myFunction );
在 myFunction() 中没有任何东西会导致这个 - 我已经尝试将这个函数剥离为一个简单的:
console.log( 'triggered' );
结果是一样的。它总是触发两次(在 Safari、Chrome 和 Firefox 中测试)。
我知道 HTML5 history API 存在问题,但是除了“尝试 History.js”之外的任何建议都将不胜感激!
最佳答案
好的,我找到了解决这个问题的方法:
jQuery( function( $ ){
var currentPageNo = location.hash || 1;
var myFunction = function(){
var pageNo = location.hash;
if( pageNo != currentPageNo ){
// trigger AJAX stuff here
currentPageNo = pageNo;
}
};
$( window ).bind( 'popstate', myFunction );
});
只触发了一次函数,但是状态还是触发了两次!
关于jquery - 绑定(bind)窗口到 popstate 事件触发两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9240381/