jquery - 单击链接时禁用滚动

标签 jquery html css

我有以下 HTML 标记,它只是三个选项卡,单击它们时,会在页面上的 div 中显示预加载的文本,

    <a class="page" id="tab1">This is tab!</a> 
    <a class="page" id="tab2">This is tab 2!</a> 
    <a class="page" id="tab3">This is tab3!</a> 

此 jQuery 仅在单击其中一个选项卡时隐藏或显示文本,

$(document).ready(function() { 
   $(".page").hide(); 
   $("#tab1").show(); 
}); 
$(".page").click(function() { 
   var id = $(this).attr("href"); 
   $(".page").hide();
   $(id).show(); 
});

但是,如果在我单击其中一个选项卡时出现页面溢出(即页面可滚动),页面会自动滚动以将 div 在视口(viewport)中居中。我如何防止这种情况发生?

最佳答案

要防止页面在点击时滚动(跟随 anchor 哈希)使用:Event.preventDefault()

$(".page").click(function( evt ) {

   evt.preventDefault();       // prevents browser's default anchor behavior

   // Other code here....
   $(".page").hide();            // HIDE ALL     .page
   $("."+ this.id ).show();      // SHOW RELATED .(id)
});

关于jquery - 单击链接时禁用滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10280599/

相关文章:

javascript - 通过链接 jQuery 将函数作为参数传递

javascript - javascript 的调试工具,用于清理未使用的变量、语法错误......

php - jquery 发布和响应操作

html - css 使父 div 100% 高度和子可滚动

css - `:first-child` 伪类存在哪些变通方法不足以解决此示例中的问题?

JavaScript/HTML5 addEventListener() 不适用于 <select> 标签

php - 验证码问题

jquery - 如图所示动态排列div

javascript - 焦点在 IE 中不起作用

JavaScript - 创建一个函数通过传递对象来更新变量?