我有这个jquery代码:
$(window).on('hashchange popstate', function() {
someFunction();
});
如果哈希值发生变化,并且哈希值被删除,我想运行someFunction()。好像' hashchange'如果简单地删除哈希,则不会触发,因此我也必须使用popstate。我现在的问题是,这通常是两次触发,我怎么能避免这种情况?
我只想要hashchange事件加上删除哈希的情况。
答案 0 :(得分:0)
You could try to debounce it a little bit:
$(window).on('hashchange popstate', function() {
clearTimeout(this._debounced);
this._debounced = setTimeout(someFunction/*,0*/);
});
To avoid global var:
$(window).on('hashchange popstate', function() {
clearTimeout($(this).data('debounced'));
$(this).data('debounced', setTimeout(someFunction/*,0*/ ));
});