我正在尝试创建一个函数来获取元素的位置,但是当我尝试获得底部偏移时它返回未定义,我缺少什么?
这是我的尝试:
var myDiv = jQuery('.div');
function getOffset(el) {
var off = jQuery(el).offset();
return {
left: off.left,
right: off.left + el.outerWidth(),
top: off.top,
bottom: off.top + el.outerHeight(),
hCenter: (bottom + top) /2,
wCenter: (right + left) /2
};
}
var myDivPosition = getOffset(myDiv);
console.log(
"top = " + myDivPosition.top +
"bottom = " + myDivPosition.bottom +
"hCenter = " + myDivPosition.hCenter +
"left = " + myDivPosition.left +
"right = " + myDivPosition.right +
"wCenter = " + myDivPosition.wCenter
);
我进入控制台:
未捕获的ReferenceError:未定义底部
答案 0 :(得分:3)
您正在尝试使用尚未声明的bottom
和right
个变量。请注意,使用不合格的bottom
或right
标识符不会以任何方式从您正在构建的对象中检索它们(事实上,there is no reasonable way)。所以,请事先做好(您还需要在top
上引用left
和off
):
function getOffset(el) {
var off = jQuery(el).offset();
var bottom = off.top + el.outerHeight(); // ***
var right = off.left + el.outerWidth(); // ***
return {
left: off.left,
right: right, // ***
top: off.top,
bottom: bottom, // ***
hCenter: (bottom - off.top) /2, // ***
wCenter: (right - off.left) /2 // ***
};
}