【发布时间】:2012-02-05 03:33:38
【问题描述】:
我正在使用 jQuery 进行简单的导航,通过在页面上显示或隐藏内容窗格来加载内容窗格。我正在使用锚标签来确定要显示的窗格。我还使用“就绪”函数在页面加载时显示#hash 元素。非常基本:
$(document).ready(function() {
$('#video_form_content > div').hide();
var showTab = window.location.hash || "#basic-info";
$(showTab).show();
}
$('#video_form_tabs li').on('click', function() {
$('#video_form_content > div').hide();
var target = $(this).children('a').attr('href');
$(target).show();
})
但是,当点击元素时,页面会跳转到目标div 的顶部。我不希望这种跳转,但我确实希望保留锚标记的默认功能,因为我希望将哈希添加到 URL,以便刷新会重新打开同一个选项卡。
这是我尝试过的
- 将
$(window).scrollTop(0)添加到点击事件。我认为可能,但此事件在锚元素的实际导航之前触发,因此它会立即撤消。 - 将
$(window).scrollTop(0)添加到$(document).ready()但是,单击同一页面的锚点时不会触发此侦听器。 - 将
window.location.hash = target或window.location.href = target添加到点击事件。但是,这仍然会导致页面重新提交,并且仍然“跳转”。 - 将
return false添加到函数中。这可以防止将哈希添加到 URL,这是非常受欢迎的。
这真的让我很困惑,任何帮助将不胜感激。
【问题讨论】:
标签: jquery tabs navigation anchor