Javascript 基于url哈希的jQuery触发事件

Javascript 基于url哈希的jQuery触发事件,javascript,jquery,events,hash,triggers,Javascript,Jquery,Events,Hash,Triggers,我对javaScript/jQuery还是相当陌生,所以如果这看起来很简单,我很抱歉 我知道我可以在单击时更改url的哈希值,但是我可以从元素中添加class/removeClass、隐藏/显示元素、基于url中的哈希值淡出/淡出元素吗 我正在尝试制作一个网站,将所有内容放在一个页面上(主页、关于、图片库等),然后只需隐藏一些内容,并在单击或悬停时显示其他内容。但是我还想保留url的功能,它可以将您带到站点上的特定位置,那么有没有一种方法可以使用javaScript或jQuery根据url的哈希

我对javaScript/jQuery还是相当陌生,所以如果这看起来很简单,我很抱歉

我知道我可以在单击时更改url的哈希值,但是我可以从元素中添加class/removeClass、隐藏/显示元素、基于url中的哈希值淡出/淡出元素吗

我正在尝试制作一个网站,将所有内容放在一个页面上(主页、关于、图片库等),然后只需隐藏一些内容,并在单击或悬停时显示其他内容。但是我还想保留url的功能,它可以将您带到站点上的特定位置,那么有没有一种方法可以使用javaScript或jQuery根据url的哈希触发事件


例如,如果hash=#gallery,则显示gallery元素。

如果页面实际重新加载(默认链接行为),请确保运行jquery脚本来检查hashvalue

var currentValue = window.location.hash.substr(1);
$(document).ready(function() {
  //Page loaded..
  alert('Do something with the current value');
});
如果页面没有重新加载,只需生成$('a')。单击();响应哈希值的函数,如以下示例所示:

$(document).ready(function() {
    $('a').click(function() {
      var value = $(this).prop('href').substr(1); //remove hash using substr(1)
      alert('do something else with the '+value+' value!');
      return false; //stop default link behaviour
    });
});

最后,我使用了您提供的第一个代码字符串,然后对不同的#值使用if/else语句


如果您需要检查所有更改哈希的链接,那么

$("a[href^=#]").on("click",function(){
     alert("clicked something with hash");
});

每次点击以
#

开头的链接时,都会触发此事件。您需要查看:,可能还有。有几个插件可以帮助管理url更改和后退按钮历史记录:jQuery BBQ、history.js、address.js……所有这些都可以在Google中轻松找到。我确实找到了jQuery BBQ,但这让我感到非常困惑。我花了几个小时试图让它工作,但我对javaScript/jQuery不是很有经验。
$("a[href^=#]").on("click",function(){
     alert("clicked something with hash");
});