javascript - 禁用防止 ancor 'a' 标签的默认值

标签 javascript html jquery css

我有这样的滚动 div 图像

enter image description here

HTML 代码

<div class="side">
      <div class="data" id="data-1">
        <img src="https://images.unsplash.com/photo-1600247354058-a55b0f6fb720?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=750&q=80" alt="">
        <span> ID = data-1</span>
        <hr>
      </div>
      <div class="data" id="data-2">
        <img src="https://images.unsplash.com/photo-1599687350452-f60014809d2a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60" alt="">
        <span> ID = data-2</span>
        <hr>
      </div>
      ...
   </div>

CSS 代码

.side{
      display: block;
      background: salmon;
      width: 350px;
      height: 100vh;
      overflow: auto;
    }
.side img{
      display: block;
      padding: 10px;
      width: 150px;
      height: 150px;
      object-fit: cover;
      object-position: center;
    }

每个图像都有一个唯一的 ID,例如 id='data-1'

然后在下面,我有一个指向每个图像的链接 HTML 代码

<div>
      <ul>
        <li>
          <a href="#data-1">Link to image id data-1</a>
        </li>
        <li>
          <a href="#data-2">Link to image id data-2</a>
        </li>
        <li>
          <a href="#data-3">Link to image id data-3</a>
        </li>
        <li>
          <a href="#data-4">Link to image id data-4</a>
        </li>
        <li>
          <a href="#data-5">Link to image id data-5</a>
        </li>
      </ul>
    </div>

默认情况下,当我单击链接时,Windows 页面将转到顶部。 这就是我想避免的

而我想要的结果是数据仍然在div滚动页面的顶部,但是windows页面不会去任何地方

最佳答案

如果你想阻止 anchor 标记的默认行为,那么你需要将点击事件绑定(bind)到 anchor 标记并调用 event.preventDefault()。

$('a').click(function(event){
    event.preventDefault();
})
.side{
  display: block;
  background: salmon;
  width: 350px;
  height: 100vh;
  overflow: auto;
}
.side img{
  display: block;
  padding: 10px;
  width: 150px;
  height: 150px;
  object-fit: cover;
  object-position: center;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="side">
    <div class="data" id="data-1">
        <img src="https://images.unsplash.com/photo-1600247354058-a55b0f6fb720?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=750&q=80" alt="">
        <span> ID = data-1</span>
        <hr>
    </div>
    <div class="data" id="data-2">
        <img src="https://images.unsplash.com/photo-1599687350452-f60014809d2a?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=500&q=60" alt="">
        <span> ID = data-2</span>
        <hr>
    </div>
    ...
</div>
<div>
    <ul>
        <li>
          <a href="#data-1">Link to image id data-1</a>
        </li>
        <li>
          <a href="#data-2">Link to image id data-2</a>
        </li>
        <li>
          <a href="#data-3">Link to image id data-3</a>
        </li>
        <li>
          <a href="#data-4">Link to image id data-4</a>
        </li>
        <li>
          <a href="#data-5">Link to image id data-5</a>
        </li>
    </ul>
</div>

关于javascript - 禁用防止 ancor 'a' 标签的默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63931678/

相关文章:

javascript - 固定数据表调整大小示例 : Cannot resize columns

javascript - 保持混合 float 元素的视觉顺序

javascript - Onclick 单选按钮 禁用另一个单选按钮

html - 绝对定位元素之间的垂直对齐

python - 从 Python 中的 unicode 字符串中删除 HTML 标签

javascript - 空函数声明如何与 javascript 中的提升一起使用?

javascript - 根据相邻元素计算行高

javascript - 具有设计 View 的 PHP IDE

jquery - css 图片库有问题..?

jquery - 如何使用 tab 键在 selected.js 多个下拉列表中选择一个选项?