我正在使用一个点击事件来显示一个隐藏的内联div。我目前正在使用Ben Alman的Jquery hashchange事件http://benalman.com/projects/jquery-hashchange-plugin/以便向前和向后浏览器按钮将显示URL中的标签链接。问题是,当你前进和后退时,隐藏的div会一直隐藏着,我需要它们来显示。
HTML:
<ul>
<li><a href="#link1">Link 1</a></li>
<li><a href="#link2">Link 2</a></li>
<li><a href="#link3">Link 3</a></li>
<li><a href="#link4"><Link 4</a></li>
</ul>
<div id="div1"></div>
<div id="div2"></div>
<div id="div3"></div>
<div id="div4"></div>
脚本:
$("#link1").click(function() {
$("#div1").fadeIn("400");
$("#div2, #div3, #div4").hide();
});
$("#link2").click(function() {
$("#div2").fadeIn("400");
$("#div1, #div3, #div4").hide();
});
如果你可以更改你的hashchange插件,我可以reccomend jQuery Address
请参阅此处http://www.asual.com/jquery/address/
为了捕捉哈希变化,您编写:
$.address.change(function(event) {
// Your code here
});
这个hashchange函数的好处是,插件确保它总是在document.ready之后被调用,所以你不必担心这件事
event.pathNames[0]将是您需要的哈希。您可以在change hadnler中使用它,并显示所需的div。
查看此演示(我认为它正是您所需要的。请使用浏览器按钮查看):
http://www.asual.com/jquery/address/samples/api/
示例用法:http://www.asual.com/jquery/address/docs/#sample-使用