function getContaineroffset(from){
(from= 'diagonal') ? from= 'left' : from = 'top';
var p = $("#container");
var position = p.offset();
return position.from;
}
我有函数getContaineroffset()
,我想返回例如:position.left
的值。
此代码返回undefined
。
我该如何解决?
答案 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];
}