返回语法错误

时间:2017-02-23 16:54:13

标签: javascript jquery jquery-plugins

我有这段代码:

jQuery.fn.getPos=function()
    {
    var o=this[0];
    var left=0,top=0,parentNode=null,offsetParent=null;
    var offsetParent=o.offsetParent;
    var original=o;
    var el=o;
    while(el.parentNode!=null){
        el=el.parentNode;
        if(el.offsetParent!=null){
            var scrolling=true;
            if(window.opera){
                if(el==original.parentNode||el.nodeName=="TR"){
                    scrolling=false
                }
            }
            if(scrolling){
                if(el.scrollTop&&el.scrollTop>0){
                    top-=el.scrollTop
                }
                if(el.scrollLeft&&el.scrollLeft>0){
                    left-=el.scrollLeft
                }
            }
        }
        if(el==offsetParent){
            left+=o.offsetLeft;
            if(el.clientLeft&&el.nodeName!="TABLE"){
                left+=el.clientLeft
            }
            top+=o.offsetTop;
            if(el.clientTop&&el.nodeName!="TABLE"){
                top+=el.clientTop
            }
            o=el;
            if(o.offsetParent==null){
                if(o.offsetLeft){
                    left+=o.offsetLeft
                }
                if(o.offsetTop){
                    top+=o.offsetTop
                }
            }
            offsetParent=o.offsetParent;
        }
    }
    return
    {
        left:left,top:top
    }
};

我无法弄清楚为什么我在return

中收到此错误
SyntaxError: missing ; before statement
    left:left,top:top

我疯了,也许我忽略了什么。 任何有关这方面的帮助将不胜感激

感谢所有人

1 个答案:

答案 0 :(得分:5)

JavaScript认为您的return语句在其行尾结束。也就是说,它认为你的意思是:

return;
{
  left: left, top: top
};

更改它以使{位于同一行:

return {
  left: left, top: top
};

问题是自动分号插入的规则。