【问题标题】:jQuery - Launch URL In Same Window, Then RefreshjQuery - 在同一窗口中启动 URL,然后刷新
【发布时间】:2011-04-28 19:55:38
【问题描述】:

我正在使用带有井号标签导航的 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,将其传递给浏览器,然后 然后刷新页面?

【问题讨论】:

标签: jquery url refresh hashtag


【解决方案1】:

如果lvl2 手风琴是动态的,您可能需要使用liveliveQuery 而不是click

【讨论】:

【解决方案2】:

我对它进行了更多尝试,并设法让它以似乎一致的方式工作。基本上,我将所有 lvl2 锚标记中的 href 属性更改为 rel 属性,然后在我的 jQuery 函数中使用该属性来处理对新 URL 的导航。然后我将超时时间从 500 增加到 1000 毫秒。在它有机会转到新 URL 之前,任何更少的东西似乎都会过早地刷新页面。

$('.lvl2 a').click(function() {
    location.href=$(this).attr('rel');
    setTimeout(function() {
        location.reload();
    },1000);
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多