Javascript 使数据属性的行为类似于锚点
有没有一种可行的方法使数据属性像锚一样工作 考虑以下可能的情况:Javascript 使数据属性的行为类似于锚点,javascript,jquery,html,custom-data-attribute,Javascript,Jquery,Html,Custom Data Attribute,有没有一种可行的方法使数据属性像锚一样工作 考虑以下可能的情况: 是否可能以某种方式将锚定标记绑定到具有相同命名数据属性的div 这不起作用,但有点像: $("#link").click(function(e) { var clickedLetter = $(this).attr('href'); $(this).attr("href", "#section[data-group='" + clickedLetter + "']") }); kawnah,在我看来,您需要获
是否可能以某种方式将锚定标记绑定到具有相同命名数据属性的div
这不起作用,但有点像:
$("#link").click(function(e) {
var clickedLetter = $(this).attr('href');
$(this).attr("href", "#section[data-group='" + clickedLetter + "']")
});
kawnah,在我看来,您需要获得单击元素的href
var clicked = $(this).attr('href');
之后,您可以使用replace函数和get href而不使用hashtag符号(#)
最后一个你应该做的是给这个数据部分的元素设置动画
var elementScrolledTo = $('*[data-section="' + myAttr + '"]');
$('html, body').animate({
scrollTop: elementScrolledTo.offset().top
}, 2000);
当然,这是jquery on事件的处理函数。
有什么特别的原因让你不能在
div
上使用id
吗?@FedericoklezCulloca它是从数据库中动态生成的标记,我现在无法更改,我很好奇这样的东西是否可以一起被破解。我不太理解你的示例代码。您是否希望跳转到数据部分标记的部分,就像锚定标记一样?总体回答非常好!我不得不稍微改变它——执行var myAttr=replace(“#”,单击)
正在返回##home
并导致并返回动画中未定义的内容,因此我需要执行var myAttr=replace('#','')代码>现在它工作得很好。
var elementScrolledTo = $('*[data-section="' + myAttr + '"]');
$('html, body').animate({
scrollTop: elementScrolledTo.offset().top
}, 2000);