javascript - Jquery平滑滚动: Cannot read property 'top' of undefined

标签 javascript jquery html scroll jquery-animate

我正在尝试编写一个返回顶部按钮的脚本,该按钮将位于页脚中的整个站点,由于某种原因,它返回“无法读取未定义的属性‘顶部’”。 任何帮助都会很棒,干杯。

JQUERY

$( '#backtotop' ).on('click', function(event) {
        event.preventDefault();
        var target = '#'+$(this).data('target')
            $('html, body').animate({
            scrollTop: $(target).offset().top
        }, 1000);
 });

HTML

    <a href="#" data-target="navigation"><span id="backtotop"><img id="upwardarrow" src="/img/upwardarrow.png"></span></a>

最佳答案

尝试:

var target = '#'+$(this).parent().data('target');

this在您的代码中指的是没有 data-target 的跨度,您必须从父级 <a> 访问它

或者像这样修改你的html:

<a href="#" id="backtotop" data-target="navigation"><span><img id="upwardarrow" src="/img/upwardarrow.png"></span></a>

移动id="backtotop"<a> tag,不需要改js。

关于javascript - Jquery平滑滚动: Cannot read property 'top' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20729290/

相关文章:

html - CSS 按钮过渡

javascript - ajax开始 ajax停止 : how to log requested url

javascript - Jquery RegEx 仅以加号或减号以及数字开头

jquery - Backbone.Model.save 和 Promise

javascript - 直接返回'this'和间接返回 'object'有什么区别?创建 jQuery 插件时

jquery - 使用 Bootstrap 创建可在单击时展开的垂直下拉菜单

javascript - 使用纯 JavaScript 交换图像 src

HTML、CSS Divs 没有内容的位置很好,但添加 H1 和 P 标签后,位置就乱了

javascript - 如何在 JavaScript 中将文本框值处理为变量

PHP 分配 Javascript 变量导致无限刷新