4

我正在使用这个插件http://www.asual.com/jquery/address/来检测我的网站的哈希变化等,它只使用它来导航,所以它是用户体验的重要组成部分。现在,这非常适合我用它做的所有事情,除了如果哈希没有更改/与单击的最后一个哈希 url 没有什么不同,它不会触发事件,例如,如果我在示例中。 com/home 并再次单击主页图标,它不会再次重新加载页面,就像您只是使用常规链接一样。我无法弄清楚如何为作为 url 一部分的所有链接实现这一点。(不仅仅是所有标签,因为我使用标签而不是导航部分。所以任何帮助都会很棒,谢谢。

$.address.change(function(event){  
 ///events to be triggered on hash change
});
4

1 回答 1

5

onhashchange 事件被恰当地命名,它仅在哈希更改时触发。

对于这个问题,我知道的唯一解决方案是将相同的函数绑定到主页图标的单击事件。

此外,jQuery 为哈希更改提供了自己的事件:

$(window).on("onhashchange", function (e) {
     route();
})
$(".icon").on("click", function(e) {
     location.hash == "#/" ? route(): null;
})

此外,如果这些是标签,例如,在#nav div 中:

$("#nav").delegate("a", "click", function () {
     location.hash == this.href ? route() : null;
})

或者这可以只应用于所有标签:

$("a").on("click", function () {
     location.hash == this.href ? route() : null;
})
于 2012-07-07T02:24:18.243 回答