【发布时间】:2019-02-06 12:53:57
【问题描述】:
我正在尝试使用 Bootstrap 3 构建网站演示(因为 IE7/8 支持)。固定导航有 4 个菜单锚点,它们链接到主题的登录页面。每个菜单都有下拉菜单,其中包含 [x] 个子菜单。
页面必须是静态的,并从外部纯 .htmls 页面引入内容。我已经使用
$(function(){
$("#submenu a").click(function(e){
e.preventDefault(); //To prevent the default anchor tag behavior
var url = this.href;
$(".container").load(url);
});
});
我的问题
- 当使用
location.hash方法刷新页面时,我似乎无法让 URL 保持不变。 - 从下拉菜单中单击子菜单时,它会加载到同一个主页容器中。
我的页面
到目前为止,我的做法是:主页有一个带有下拉子菜单的菜单导航。
带有导航和菜单的主页
当您单击“菜单”链接时,它会转到该页面。此 html 再次具有相同的导航,但 active 菜单 href 没有下拉菜单,但显示为带有 nav-pills 的新 div,单击时运行上述 load() 脚本。
将子菜单作为新 div 的菜单登录页面
。其他菜单链接仍然具有下拉功能,因为它们未处于活动状态。
我想要达到的目标
- 从主页,在更新 url 的同时将外部 MENU.htmls 或 SUBMENU.html 加载到同一个 div 容器中。
- 如果我与某人共享该网址,则打开的页面会包含该特定内容
- 如果单击菜单页面和
active,请更新导航以将其子菜单包含在新的 div 区域中,同时禁用下拉菜单(但下拉菜单在响应模式下仍适用于collapse)。这样我就不必为每个页面添加不同的标题。其他菜单链接仍然具有下拉功能,因为它们未处于活动状态。 - 浏览器刷新时重新加载包含内容的同一页面
- 基本上这是我想要的结果:
感谢任何反馈、建议、示例链接等。 提前致谢
更新:我无法让代码从头开始工作,但是我在 Single Page Applications 上找到了一个视频,它提供了一个我想要发生的事情的示例......
【问题讨论】:
-
$(function(){ $("#kva-menutabs a").click(function(e){ e.preventDefault(); //To prevent the default anchor tag behavior var url = this.href; window.history.pushState("obj", "new title", url); $(".container").load(url); }); });我发现推送状态 [link] (code.tutsplus.com/tutorials/…) 会更新 URL,但如果我刷新它会显示实际页面(没有格式)而不是重新加载到div。
标签: javascript jquery html css navigation