检测hashchange和hash存在的代码运行重复?

时间:2015-10-10 16:55:09

标签: javascript hash

我有以下代码来检测散列已更改并存在哈希。问题是,当人们点击后退按钮时,代码将运行两次,因为我的网址是www.site.com/#apple,哈希存在,计算机思维哈希也发生了变化。无论如何你要跑其中任何一个。应该是这样当人们点击我的www.site.com时,没有任何事情发生。当人们单击其中一个按钮时,哈希交换代码会运行,但哈希存在的代码将无法运行。当用户转到我的其他页面并点击后退按钮时,它会运行哈希存在的代码,但不会运行哈希更改代码。



$(window).on('hashchange',function(){ 
     alert('Apple');
});
if(window.location.hash) {
    alert('Apple');
}




1 个答案:

答案 0 :(得分:0)

不是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");
    }
});