0

我有一个带有手风琴式子部分的页面,通过单击部分标题或单击全局站点导航中的下拉列表中的链接来切换打开。

目的是使页面中的部分可以从任何地方直接访问。

全局菜单具有以下格式的链接:

/pagename.aspx#anchor-name
/pagename.aspx#anchor-name2

为了通过全局导航捕获点击,我使用:

var anchor = window.location.hash;

if (anchor) {
    toggle_element(anchor_name);
}   

之内

$(document).ready

不幸的是.ready,仅在第一次加载页面时触发。

如果我导航到单击/pagename.aspx#anchor-name,我的脚本就会运行。如果我然后单击/pagename.aspx#anchor-name2,则没有任何反应。

我怎样才能捕捉到这个活动?

4

2 回答 2

0

您需要使用此 jQuery 插件http://benalman.com/projects/jquery-hashchange-plugin/收听 hash-change 事件

于 2013-08-08T01:47:53.307 回答
0

我最终使用

window.onhashchange = anchor_change;

function anchor_change() {...}

基于此MozDev 的参考http://caniuse.com/hashchange表明它在 IE8 及更高版本以及涵盖我的用例的大多数现代浏览器中受支持。

请注意,IE8 无法理解window.addEventListener("hashchange", anchor_change, false);格式,所以我不得不使用window.onchange = anchor_change;变体。

于 2013-08-08T18:17:49.337 回答