我正在开发一个网页,其中我正在使用Twitter的Bootstrap Framework和他们的Bootstrap Tabs JS.除了一些小问题外,它的效果很好,其中一个是我不知道如何从外部链接直接转到特定的选项卡.例如:
<a href="facility.php#home">Home</a>
<a href="facility.php#notes">Notes</a>
Run Code Online (Sandbox Code Playgroud)
单击外部页面上的链接时,应分别转到"主页"选项卡和"注释"选项卡
我们有一些页面使用ajax来加载内容,并且在某些情况下我们需要深入链接到页面.而不是链接到"用户"并告诉人们点击"设置",能够将人们链接到user.aspx#settings是有帮助的
为了让人们能够为我们提供正确的部分链接(用于技术支持等),我已将其设置为在点击按钮时自动修改URL中的哈希值.唯一的问题当然是,当发生这种情况时,它还会将页面滚动到此元素.
有没有办法禁用它?以下是我到目前为止这样做的方法.
$(function(){
//This emulates a click on the correct button on page load
if(document.location.hash){
$("#buttons li a").removeClass('selected');
s=$(document.location.hash).addClass('selected').attr("href").replace("javascript:","");
eval(s);
}
//Click a button to change the hash
$("#buttons li a").click(function(){
$("#buttons li a").removeClass('selected');
$(this).addClass('selected');
document.location.hash=$(this).attr("id")
//return false;
});
});
Run Code Online (Sandbox Code Playgroud)
我曾希望return false;会阻止页面滚动 - 但它只会使链接无法正常工作.所以现在只是注释掉,所以我可以导航.
有任何想法吗?
我试图通过Bootstrap 3在刷新时保持选定的选项卡处于活动状态.尝试并检查了一些问题已经在这里被问过,但没有为我工作.不知道我哪里错了.这是我的代码
HTML
<!-- tabs link -->
<ul class="nav nav-tabs" id="rowTab">
<li class="active"><a href="#personal-info" data-toggle="tab">Personal Information</a></li>
<li><a href="#Employment-info" data-toggle="tab">Employment Information</a></li>
<li><a href="#career-path" data-toggle="tab">Career Path</a></li>
<li><a href="#warnings" data-toggle="tab">Warning</a></li>
</ul>
<!-- end: tabs link -->
<div class="tab-content">
<div class="tab-pane active" id="personal-info">
tab data here...
</div>
<div class="tab-pane" id="Employment-info">
tab data here...
</div>
<div class="tab-pane" id="career-path">
tab data here...
</div>
<div class="tab-pane" id="warnings">
tab data here...
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
Javascript:
// tab
$('#rowTab a:first').tab('show');
//for bootstrap 3 use 'shown.bs.tab' …Run Code Online (Sandbox Code Playgroud) 我有各种链接,都有唯一的id是"伪锚".我希望它们影响url哈希值,并且点击魔法全部由一些mootools代码处理.但是,当我点击链接时,它们会自动滚动(或者在一个案例中滚动到顶部).我不想在任何地方滚动,但也需要我的javascript执行并在url更新中获得哈希值.
模拟的示例代码:
<a href="#button1" id="button1">button 1</a>
<a href="#button2" id="button2">button 2</a>
<a href="#" id="reset">Home</a>
Run Code Online (Sandbox Code Playgroud)
因此,如果您点击"按钮1"链接,则网址可以是http://example.com/foo.php#button1
有没有人对此有任何想法?简单地使用一些javascript返回void会导致滚动,但也会杀死我的javascript(虽然我可以使用onclick来解决这个问题)但更重要的是,可以防止url中的哈希值发生变化.
在我的网站上我设置了网址地址
window.location.hash = 'project_name';
Run Code Online (Sandbox Code Playgroud)
但如果我想从任何哈希(当我关闭一个项目)清理地址网址,我设置
window.location.hash = '';
Run Code Online (Sandbox Code Playgroud)
它会在页面滚动到首页时发生
有没有办法清理网址没有任何副作用?
谢谢
我不知道是否有人仍在使用Sammy.js,但我发现它非常适合我对轻量级路由和模板库的需求.如果有人有其他想法,请告诉我.
我的问题是,当我有一个长页面并向下滚动时,单击此页面上的链接然后返回,重新加载整个页面(在Sammy中,调用GET路由)并跳转到页面顶部.
我的问题是:有没有办法让Sammy缓存页面并在回到历史记录时保持滚动位置?
提前致谢.