如何使.top和.offset一起工作

时间:2013-10-06 20:10:10

标签: jquery

我遇到了一些问题,解决了为什么我的Jquery被忽略了。下面是Jquery:

$(document).ready(function() {
var $root = $('html, body ');
$('a').click(function(e) {
    var href = $.attr(this, 'href');
    $root.animate({
        scrollTop: $(href).offset.top
    }, 500, function () {
        window.location.hash = href;
    });
    return false;
});

这是我试图很好地滚动到页面的一部分的jquery,如果我使用.offset('top')几乎可以工作但是抛出了这个错误:

  

未捕获TypeError:无法使用'in'运算符来搜索“using”in   顶

使得jquery跳转而不是滚动得很好。

Jquery代码的其余部分:

// Responsive menu 
$(function() {
    var pull        = $('#pull');
        menu        = $('nav ul');
        menuHeight  = menu.height();

    $(pull).on('click', function(e) {
        e.preventDefault();
        menu.slideToggle();
    });

    $(window).resize(function(){
        var w = $(window).width();
        if(w > 320 && menu.is(':hidden')) {
            menu.removeAttr('style');
        }
    });
}); 

});

以前有没有人经历过这种情况并找到解决方案?

1 个答案:

答案 0 :(得分:3)

您正在尝试获取功能的top offset

$(href).offset.top

jQuery对象有一个方法.offset(),运行的结果有一个属性.top。 也许这就是你想要用的东西?

$(href).offset().top

我已经调查了错误消息,很明显它发生在jQuery中的the setOffset call中。 似乎在offset函数的某个地方使用参数"top"调用,这是不正确的。

如果没有所有代码我无法进一步调试,但请检查您的scrollTo参数是否已正确拼写,并且错误确实发生在代码中的该行上。