javascript - 为什么这两个 jquery 函数不能一起工作?

标签 javascript jquery

我写了这两个简单的滚动函数

$(".scrollTo").click(function() {
    var t = $(this).attr("href");
    return $("html, body").animate({
        scrollTop: $(t).offset().top - 100
    }, {
        duration: 1e3,
        easing: "easeInOutQuint"
    })
});

$("a[href='#top']").click(function() {
    return $("html, body").animate({
        scrollTop: 0
    }, {
        duration: 1e3,
        easing: "easeInOutQuint"
    })
});

但是除非我删除第一个,否则第二个函数永远不会工作。我是 js 新手,我不明白为什么这两个函数不能同时工作?我尝试了几种语法技巧,但不幸的是它们都不起作用

最佳答案

删除return语句并防止 anchor 的默认行为。试试这个。

$(".scrollTo").click(function() {
    var t = $(this).attr("href");
    $("html, body").animate({
        scrollTop: $(t).offset().top - 100
    }, {
        duration: 1e3,
        easing: "easeInOutQuint"
    });
});

$("a[href='#top']").click(function(e) {
    e.preventDefault();

    $("html, body").animate({
        scrollTop: 0
    }, {
        duration: 1e3,
        easing: "easeInOutQuint"
    });
});

关于javascript - 为什么这两个 jquery 函数不能一起工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669750/

相关文章:

javascript - jQuery 验证 - 显示每个字段的错误消息

javascript - 浏览器不呈现表格元素 | jsFiddle 示例

jquery - 从 $.ajax 成功操作 "data": function(data) {

javascript - 即使用户已登录,我也会收到错误消息

javascript - 使用 JavaScript 在 Rails 中动态更新表单

javascript - 使 Angular *ngFor 绘制两个不同的数据列

javascript - 如何放大 jQuery?

javascript - 在内联javascript函数中输入参数

javascript - 为什么使用点 * 和 * 括号访问来分配属性?

javascript - 如何保持一个 Accordion 选项卡始终打开