Jquery getOffset函数返回undefined

时间:2014-02-16 12:35:18

标签: javascript jquery html position offset

function getContaineroffset(from){
    (from= 'diagonal') ? from= 'left' : from = 'top';

    var p = $("#container");
    var position = p.offset();

    return position.from;
}

我有函数getContaineroffset(),我想返回例如:position.left的值。

此代码返回undefined

我该如何解决?

2 个答案:

答案 0 :(得分:1)

.运算符旨在与标识符一起使用。如果要通过动态字符串访问对象属性,则必须使用[]表示法。

所以你必须更换:

return position.from;

使用:

return position[from];

答案 1 :(得分:1)

该功能以笨拙的方式设置,并且由于几个原因也不会按预期运行。

(from= 'diagonal') ? from= 'left' : from = 'top';

在声明的第一部分中,您将'diagonal'分配给from,而不是检查是否相等。

这也可以简化为类似的东西。

from = (from === 'diagonal') ? 'left' : 'top';

最后,position.from访问from中的文字属性position。如果要访问键值为from的位置的属性,则必须使用此语法。

position[from];

我个人会按如下方式实现这个功能。

function getContainerOffset(from) {
    var property = (from === 'diagonal') ? 'left' : 'top';

    return $('#container').offset()[property];
}
相关问题