jQuery错误:无法使用'in'运算符在100中搜索'using'

时间:2014-10-08 01:47:56

标签: javascript jquery html

这段代码在某一点上工作,但现在抛出这个错误,我不确定它是什么意思。我用谷歌搜索了它,但似乎我找到的是接近的,但不是我所遇到的问题的确切。

错误: 未捕获的TypeError:无法使用'in'运算符在100

中搜索'using'

JS代码:

    $('a.page-scroll').bind('click', function(event) {
        var $anchor = $(this);
        $('html, body').stop().animate({
            scrollTop: $($anchor.attr('href')).offset(100).top
        }, 1500, 'easeInOutExpo');

        //check to see if its a drop down button
        if(!$(this).hasClass("dropdown"))
        {
            if ( $(window).width() < 767){
                $('.navbar-toggle').click();
            }
        }
       event.preventDefault();
    });

这是导致问题的部分:

   $('html, body').stop().animate({
            scrollTop: $($anchor.attr('href')).offset(100).top
        }, 1500, 'easeInOutExpo');

2 个答案:

答案 0 :(得分:0)

检查您的$($anchor.attr('href')).offset(100).top值,或者只使用静态数字而不是它,如果没问题,那么该值必须有一些错误。

答案 1 :(得分:0)

我知道这个问题很古老,但是我刚刚遇到了类似的问题。如果查看jQuery documentation on .offset(coordinates),您会发现它不是在寻找实际坐标,而是在寻找包含坐标的对象:

坐标

类型:PlainObject

包含属性topleft的对象,这些属性是表示元素的新的顶部和左侧坐标的数字。

因此,如果您执行以下操作:

$('a.page-scroll').bind('click', function(event) {
    var $anchor = $(this);
    var myOffset = { top: "100px", left: "0px" };
    $('html, body').stop().animate({
        scrollTop: $($anchor.attr('href')).offset(myOffset).top
    }, 1500, 'easeInOutExpo');

    //check to see if its a drop down button
    if(!$(this).hasClass("dropdown"))
    {
        if ( $(window).width() < 767){
            $('.navbar-toggle').click();
        }
    }
   event.preventDefault();
});

(请注意myOffset变量及其在.offset()调用中的使用)

您应该得到想要的结果!