我有这段代码:
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
我疯了,也许我忽略了什么。 任何有关这方面的帮助将不胜感激
感谢所有人
答案 0 :(得分:5)
JavaScript认为您的return
语句在其行尾结束。也就是说,它认为你的意思是:
return;
{
left: left, top: top
};
更改它以使{
位于同一行:
return {
left: left, top: top
};
问题是自动分号插入的规则。