我正在使用带有哈希标签导航的jQuery-UI手风琴插件,但我遇到了一个问题。我网站的每个页面都有一个手风琴小部件。主导航菜单第二级的URL应该使用随附的哈希标签打开手风琴的正确面板,它们的编写如下:
<li class="lvl2"><a href="/thepage.jsp#panel-3">panel 3</a></li>
问题是,如果您已经查看任何一个手风琴的一个面板,尝试使用二级导航打开另一个面板不起作用。它将散列标记传递到地址栏,但除非您刷新页面,否则它不会打开折叠面板。所以我想我可以通过添加一些jQuery来解决问题,这会导致页面在500毫秒后刷新,如下所示:
$('.lvl2 a').click(function() {
setTimeout(function() {
location.reload();
},500);
});
现在除了破坏远离从页面导航到新页面和一个新的手风琴面板。这告诉我答案可能是完全控制二级导航的所有功能并使用jQuery处理它。
那么我怎么能改变它来“存储”锚标签的href属性中的URL,将其传递给浏览器,然后然后刷新页面?
答案 0 :(得分:0)
如果lvl2
手风琴是动态的,您可能需要使用live
或liveQuery
代替click
。
答案 1 :(得分:0)
我更多地使用它并设法让它以一种似乎一致的方式工作。基本上,我将所有lvl2锚标记中的href属性更改为rel属性,然后在我的jQuery函数中使用该属性来处理到新URL的导航。然后我将超时从500毫秒增加到1000毫秒。在它有机会转到新网址之前,任何东西都不会太快刷新页面。
$('.lvl2 a').click(function() {
location.href=$(this).attr('rel');
setTimeout(function() {
location.reload();
},1000);
});