0

我在解决为什么我的 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')但会抛出这个错误:

未捕获的类型错误:无法使用“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');
        }
    });
}); 

});

有没有人遇到过这种情况并找到解决方案?

4

1 回答 1

3

您正在尝试获取函数top的属性: offset

$(href).offset.top

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

$(href).offset().top

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

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

于 2013-10-06T20:12:45.273 回答