我正在使用这个插件http://www.asual.com/jquery/address/对于我的网站,它只将其用于导航,因此它是用户体验的重要组成部分。现在,这非常适合我使用它所做的一切,除了如果哈希没有改变/与上次单击的哈希url没有不同,它不会触发事件,例如,如果我在example.com/home上再次单击主页图标,它不会再次重新加载页面,就像你只是使用常规链接一样。我还没能弄清楚如何为所有链接实现这一点,这些链接都是url的一部分。(不仅仅是所有的标签,因为我使用的标签没有导航部分。所以任何帮助都会很棒,谢谢。
$.address.change(function(event){
///events to be triggered on hash change
});
onhashchange事件的名称很恰当,它只在hash发生变化时才会触发。
我知道这个问题的唯一解决方案是将相同的功能绑定到主页图标的点击事件。
此外,jQuery为散列更改提供了自己的事件:
$(window).on("onhashchange", function (e) {
route();
})
$(".icon").on("click", function(e) {
location.hash == "#/" ? route(): null;
})
此外,如果这些是标签,比如说,在#navdiv:中
$("#nav").delegate("a", "click", function () {
location.hash == this.href ? route() : null;
})
或者这可以应用于所有的标签:
$("a").on("click", function () {
location.hash == this.href ? route() : null;
})