即使哈希没有改变,jQuery地址哈希更改也会触发
Posted
技术标签:
【中文标题】即使哈希没有改变,jQuery地址哈希更改也会触发【英文标题】:jQuery address hash change trigger even if hash doesn't change 【发布时间】:2012-07-07 11:26:49 【问题描述】:我正在使用这个插件http://www.asual.com/jquery/address/ 来检测我的网站的哈希变化等,它仅将其用于导航,因此它是用户体验的重要组成部分。现在,这非常适合我用它做的所有事情,除了如果哈希没有更改/与单击的最后一个哈希 url 没有什么不同,它不会触发事件,例如,如果我在示例中。 com/home 并再次单击主页图标,它不会再次重新加载页面,就像您只是使用常规链接一样。我无法弄清楚如何为作为 url 一部分的所有链接实现这一点。 (不只是所有标签,因为我使用标签而不是导航部分。所以任何帮助都会很棒,谢谢。
$.address.change(function(event)
///events to be triggered on hash change
);
【问题讨论】:
【参考方案1】: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 标签:
$("a").on("click", function ()
location.hash == this.href ? route() : null;
)
【讨论】:
以上是关于即使哈希没有改变,jQuery地址哈希更改也会触发的主要内容,如果未能解决你的问题,请参考以下文章
为啥即使没有 SVN 更改,Jenkins 也会触发 IVY 构建?