未捕获的ReferenceError:尝试从函数

时间:2016-11-10 12:41:47

标签: 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,
        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:未定义底部

1 个答案:

答案 0 :(得分:3)

您正在尝试使用尚未声明的bottomright个变量。请注意,使用不合格的bottomright标识符不会以任何方式从您正在构建的对象中检索它们(事实上,there is no reasonable way)。所以,请事先做好(您还需要在top上引用leftoff):

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        // ***
    };
}