【问题标题】:I need a shortcut for selecting inside links in order to use this function我需要一个用于选择内部链接的快捷方式才能使用此功能
【发布时间】:2015-05-01 21:26:26
【问题描述】:

我是 Web 开发的新手,但遇到了一些麻烦。我正在使用以下 jQuery 函数来滚动带有内部链接的特定 div 的页面。

$('a[href^="#"]').on('click', function(event) {
    var target = $( $(this).attr('href') );
    if( target.length ) {
        event.preventDefault();
        $('html, body').animate({
            scrollTop: target.offset().top-30
        }, 1000);
    }
});

问题在于该函数也适用于其他具有不应具有滚动效果的内部链接的元素(手风琴元素)。我可以防止这种情况发生的唯一方法是为我想要应用该函数的所有链接编写相同的函数(“#link1”、“#link2”、“#link3”、“#link4”、.. . , "#linkn"). 我尝试使用带有链接的数组并在函数中使用数组的每个值,但我不知道如何编写循环。

你能帮帮我吗?

【问题讨论】:

  • 你能改变html吗?喜欢在相关链接中添加一个类?

标签: javascript jquery


【解决方案1】:
$('a[href^="#"]')

此选择器表示“获取所有以href=# 开头的a 标记”。所以最好的办法是改变这个选择器,改为使用类名。

例如,您可以这样做:

<a href="#link1" class="autoscrollLink">link</a>

还有js:

$('.autoscrollLink').on('click', function(event) {
    var target = $( $(this).attr('href') );
    if( target.length ) {
        event.preventDefault();
        $('html, body').animate({
            scrollTop: target.offset().top-30
        }, 1000);
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 2022-11-13
    • 1970-01-01
    • 2023-03-11
    • 2017-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多