javascript - 使数据属性表现得像 anchor

标签 javascript jquery html custom-data-attribute

是否有可行的方法使数据属性的行为像 anchor 一样?

考虑以下可能的情况:

<a id="link" href="#home">

<div data-section="home">

是否有可能以某种方式将 anchor 标记绑定(bind)到具有相同命名数据属性的那个 div?

这行不通,但有点像:

$("#link").click(function(e) {
    var clickedLetter = $(this).attr('href');
    $(this).attr("href", "#section[data-group='" + clickedLetter + "']")
});

最佳答案

kawnah,在我看来你需要获得点击元素的href

var clicked = $(this).attr('href');

之后,您可以使用替换函数并获得没有标签符号(#)的href

var myAttr = replace('#', clicked);

最后一个你应该做的是动画主体到元素有这个数据部分

var elementScrolledTo = $('*[data-section="' + myAttr + '"]');

$('html, body').animate({
                scrollTop: elementScrolledTo.offset().top
            }, 2000);

当然,这是jquery on event的处理函数。 http://api.jquery.com/on/

关于javascript - 使数据属性表现得像 anchor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51311732/

相关文章:

javascript - 如何从 JavaScript 的 Math.random 生成包含边界的 Pareto 随机整数

javascript - 使用 jQuery 显示选定的元素值/文本

html - 水平导航有一些问题

javascript - OwlCarousel 和 bootstrap 幻灯片在网站中的使用

html - 基于路由的 Angular 子导航

javascript - 如何在 React JS 中创建依赖于其他组件的 Dropdown 组件?

javascript - 如何使用函数参数作为类名?

javascript - node.js 检查负载 header 是否包含预定义的字符序列、协议(protocol) - TLS

javascript - 从 jquery 对象中删除函数

jquery - 在两个 if 条件之间添加延迟