我有下面的代码来检测哈希的变化和哈希的存在。问题是,当人们点击后退按钮时,代码会运行两次,因为我的url是www.site.com/#apple,散列存在,计算机认为散列也改变了。不管怎样,你会运行其中的任何一个。应该是这样的,当人们点击我的www.site.com时,什么也没有发生。当人们单击其中一个按钮时,hashchange代码会运行,但hash已有的代码将不会运行。当用户转到我的其他页面并点击后退按钮时,它会运行散列已有的代码,但不会运行散列更改代码。
$(window).on('hashchange',function(){
alert('Apple');
});
if(window.location.hash) {
alert('Apple');
}
发布于 2015-10-10 17:08:06
从你的描述中不是100%清楚你想要做什么,但试一试:
var hash = '';
$(document).load(function() {
$(window).trigger('hashchange');
});
$(window).on('hashchange', function() {
if (hash == window.location.hash) {
// do nothing, hash is the same as it was previously
return;
}
hash = window.location.hash;
if (hash) {
alert("Apple");
}
});
https://stackoverflow.com/questions/33056521
复制