jquery - 滚动条被 jQuery 显示和隐藏卡住了

标签 jquery scroll hide show

我使用 jQuery 来显示和隐藏各种 div 以对内容进行分页。然而,在选择显示或隐藏 div 的选项(例如,第 1、2 或 3 页)后,我会立即不规则地上下滚动,而不是让我向下滚动页面。我根本不知道是什么原因造成的,并且在 Stack Overflow 和 Google 上进行搜索后,这似乎不是其他人遇到过的问题。有人对可能导致此问题的原因以及如何纠正它有建议吗?

最佳答案

你的意思是不希望页面跳转到顶部?如果是这样,那么它正在发生,因为您的 <a>标签有href="#" 。这是浏览器的正常行为,您可以在任何网站上进行测试。只需向下滚动页面,在 URL 末尾添加哈希值,然后按 Enter,浏览器就会移动到页面顶部。

您正在使用 jQuery 将函数绑定(bind)到 <a> 上的单击事件。标签将首先执行该函数,然后继续遵循 href 。为了防止这种情况继续发生,您可以 return false;从函数或使用内置 jQuery 函数 preventDefault() stopPropagation() 防止默认行为并停止事件传播 - 请参阅 event.preventDefault() vs. return false

因此将您的代码更改为:

$("div.pages a.page1").click(function() {
    $("div.pd-item#tethco, div.pd-item#novi, div.pd-item#inna").show();
    $("div.pd-item:not(#tethco, #novi, #inna)").hide();
    return false;
});

也对 a.page2 执行相同的操作和a.page3绑定(bind)函数,页面将不再跳转。

关于jquery - 滚动条被 jQuery 显示和隐藏卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769250/

相关文章:

javascript - 在 simpleweather.js 中将大写更改为小写

javascript - 单击中心 <li> 元素并将容器设置为滚动

javascript - 自动滚动到 Gridview asp.net 中最后插入的行

delphi - 如何在 RichEdit 中保存然后恢复垂直滚动位置

javascript - 使用 javascript 隐藏/显示 css div - 隐藏后不再显示 -

ios - contentInset 不适用于 UISearchDisplayController tableView?

javascript - 在odoo 12中使用javascript隐藏基于复选框的字段

javascript - jQuery文本替换无法正常工作

javascript - 使用 leaflet js 将单击类添加到路径

jquery - 使用 Yii 在 jQuery 的 $(document).ready 中添加 javascript 的正确方法是什么