Jquery 未捕获引用错误:尝试从函数返回对象时未定义x
我试图创建一个函数来获取元素的位置,但是当我试图获取底部偏移量时,它返回未定义的,我缺少什么 这是我的尝试:Jquery 未捕获引用错误:尝试从函数返回对象时未定义x,jquery,Jquery,我试图创建一个函数来获取元素的位置,但是当我试图获取底部偏移量时,它返回未定义的,我缺少什么 这是我的尝试: var myDiv = jQuery('.div'); function getOffset(el) { var off = jQuery(el).offset(); return { left: off.left, right: off.left + el.outerWidth(), top: off.top,
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
);
我进入控制台:
未捕获引用错误:未定义底部
您正在尝试使用未声明的
底部
和右侧
变量。请注意,使用非限定的底部
或右侧
标识不会以任何方式从正在构建的对象中检索它们(事实上,)。因此,只需在前面执行这些操作(您还需要在打开关闭时参考顶部和左侧):
hcenter和wcenter中使用的底部和右侧未定义谢谢,谢谢您的帮助!而且,听起来我好像也没有申报top
和left
。@Homer:我也没想到你在用top
和left
做这件事。您不必声明它们,只需在代码中使用off.top
和off.left
。我已经更新了答案。
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 // ***
};
}