2014-02-16 81 views
0
function getContaineroffset(from){ 
    (from= 'diagonal') ? from= 'left' : from = 'top'; 

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

    return position.from; 
} 

我有功能getContaineroffset(),我想返回爲例:position.left值。這個代碼返回undefinedjQuery的功能的getOffset返回undefined

我該如何解決?

回答

1

.運營商旨在與標識符一起使用。如果要通過動態字符串訪問對象屬性,則必須使用[]表示法。

所以,你必須更換:

return position.from; 

有:

return position[from]; 
+0

謝謝:)它炒鍋 – PiraTa

+0

@ user2992577如果你想表達你的感激之情,你可以選擇這個答案爲「接受」。 – hindmost

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]; 
}