【问题标题】:Trigger function once on either hashchange or popstate在 hashchange 或 popstate 上触发一次函数
【发布时间】:2015-06-20 09:31:35
【问题描述】:

我有这个 jquery 代码:

$(window).on('hashchange popstate', function() {
  someFunction();
});

如果散列发生变化并且散列被删除,我想运行 someFunction()。如果简单地删除哈希,似乎'hashchange'不会触发,因此我也必须使用popstate。我现在的问题是这通常会触发两次,我该如何避免呢?

我只是想要 hashchange 事件加上哈希被删除时的情况。

【问题讨论】:

    标签: jquery hashchange


    【解决方案1】:

    你可以试着去抖动一下:

    $(window).on('hashchange popstate', function() {
        clearTimeout(this._debounced);
        this._debounced = setTimeout(someFunction/*,0*/);
    });
    

    为了避免全局变量:

    $(window).on('hashchange popstate', function() {
        clearTimeout($(this).data('debounced'));
        $(this).data('debounced', setTimeout(someFunction/*,0*/ ));
    });
    

    【讨论】:

      猜你喜欢
      • 2014-10-27
      • 2014-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多