首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >是否检测hashchange和hash已有代码重复运行?

是否检测hashchange和hash已有代码重复运行?
EN

Stack Overflow用户
提问于 2015-10-11 00:55:09
回答 1查看 50关注 0票数 0

我有下面的代码来检测哈希的变化和哈希的存在。问题是,当人们点击后退按钮时,代码会运行两次,因为我的url是www.site.com/#apple,散列存在,计算机认为散列也改变了。不管怎样,你会运行其中的任何一个。应该是这样的,当人们点击我的www.site.com时,什么也没有发生。当人们单击其中一个按钮时,hashchange代码会运行,但hash已有的代码将不会运行。当用户转到我的其他页面并点击后退按钮时,它会运行散列已有的代码,但不会运行散列更改代码。

代码语言:javascript
代码运行次数:0
运行
复制
$(window).on('hashchange',function(){ 
     alert('Apple');
});
if(window.location.hash) {
    alert('Apple');
}

EN

回答 1

Stack Overflow用户

发布于 2015-10-11 01:08:06

从你的描述中不是100%清楚你想要做什么,但试一试:

代码语言:javascript
代码运行次数:0
运行
复制
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");
    }
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33056521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档