【问题标题】:Jquery getOffset function returns undefinedJquery getOffset 函数返回未定义
【发布时间】:2014-02-16 12:35:17
【问题描述】:
function getContaineroffset(from){
    (from= 'diagonal') ? from= 'left' : from = 'top';

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

    return position.from;
}

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

此代码返回undefined

我该如何解决?

【问题讨论】:

    标签: javascript jquery html position offset


    【解决方案1】:

    该功能的设置方式很尴尬,并且由于多种原因也无法按预期运行。

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

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

    这也可以简化成这样。

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

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

    position[from];

    我个人会实现如下功能。

    function getContainerOffset(from) {
        var property = (from === 'diagonal') ? 'left' : 'top';
    
        return $('#container').offset()[property];
    }
    

    【讨论】:

      【解决方案2】:

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

      所以你必须更换:

      return position.from;
      

      与:

      return position[from];
      

      【讨论】:

      • @user2992577 如果您想表达感激之情,可以选择此答案为“已接受”。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2014-07-05
      • 2011-04-17
      • 1970-01-01
      • 2014-11-11
      相关资源
      最近更新 更多