jquery - 绑定(bind)窗口到 popstate 事件触发两次

标签 jquery html history

简单地将窗口(在 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/

相关文章:

javascript - jQuery - 有没有更有效的方法来做到这一点?

javascript - 混合起来 Jquery Gallery 不在下面推送内容

javascript - 使用 php 提交 html 并使用 Ajax 和 jQuery 保存到 MySQL Db?

使用 smartadmin 模板时 html 内容不会更新

r - 自动保存和加载历史记录

jquery - 3d Card Flip 动画耗时过长

javascript - 如何在 javascript 中将 [object HTMLDivElement] 字符串化为 html 字符串

javascript - 如何使用javascript查找文件?

MySql 工作台查询历史(上次执行的查询/查询),即创建/更改表、选择、插入更新查询

javascript - 哈希的使用以及用户在历史中的移动