JavaScript 数组点击

标签 javascript jquery

我试图避免使用相同的 Javascript 行来实现相同的目的。

我有 3 个部分:

<div class="specs"></div>
<div class="description"></div>
<div class="comments"></div>

这 3 个链接:

<a href="#" class="readMore desc">Produkt beskrivelse</a>
<a href="#" class="readMore spec">Produkt specs</a>
<a href="#" class="readMore facebook"></i>Kommentarer</a>

这个 javascript,点击后会滚动到该部分

$(".facebook").on('click', function () {
    $('html, body').animate({
        scrollTop: $(".comments").offset().top - 200
    }, 1000);
});

$(".readMore.desc").on('click', function () {
    $('html, body').animate({
        scrollTop: $(".description").offset().top - 200
    }, 1000);
});

$(".readMore.spec").on('click', function () {
    $('html, body').animate({
        scrollTop: $(".specs").offset().top - 200
    }, 1000);
});

这 3 段 JavaScript 代码很烦人,因为它们做的事情完全相同。

一个活生生的例子可以是 seen here a live example 。您将在产品图片右侧看到 3 个按钮。

我不知道是否可以添加某种数组来解决?

最佳答案

处理此问题的一种方法是为每个链接提供一个 data- 属性,该属性描述链接应滚动到的位置。您可以使用.data()访问这些属性。

$(".readMore").on('click', function() {
  // Get the selector of where to scroll to
  var selector = $(this).data('selector');
  $('html, body').animate({
    scrollTop: $(selector).offset().top - 200
  }, 1000);
});
html, body {
  height: 100%;
}
div {
  height: 100%;
  margin-top: 20px;
  border: solid 1px #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#" class="readMore desc" data-selector=".description">Produkt beskrivelse</a>
<a href="#" class="readMore spec" data-selector=".specs">Produkt specs</a>
<a href="#" class="readMore facebook" data-selector=".comments">Kommentarer</a>

<div class="specs">
  Specs
</div>
<div class="description">
  Description
</div>
<div class="comments">
  Comments
</div>

关于JavaScript 数组点击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41004886/

相关文章:

javascript - querySelectorAll 和appendChild 的组合不起作用

JQuery 类选择器与 id 选择器

javascript - 第一次点击时不会出现 Bootstrap 自定义弹出窗口

javascript - 当有人访问我的网站时如何更改光标指针并在其上应用 css

javascript - CSS Transition Flicker替换背景图像和反转文本

javascript - 如何检查数组是否包含对象

javascript - 即时加载 Google 字体样式表以供预览

c# - 反序列化 Web.API 参数时未调用自定义 Json.NET JsonConverter

JavaScript:查询子项并修改父项

javascript - 复杂拆分正则表达式