2012-04-02 69 views
1

我在外部JS文件,下面的代碼:JS語法打破了網頁

var myDiv = $(".myDiv"); 

if (myDiv.css('left') == 'auto') { 
    var pos = myDiv.position(); 
    myDiv.css({ "left:" + pos.left + "px", "top:" + pos.top + "px" }); 
} 

看來,以下行打破我的頁面:

myDiv.css({ "left:" + pos.left + "px", "top:" + pos.top + "px" }); 

如果我把它註釋掉一切正常很好,除了這個功能,顯然。

如果我把值放在alert中,我也可以正確地得到它們。

alert(pos.left + ' ' + pos.top) 

我錯過了什麼?

回答

7

您正在嘗試通過傳入2 strings來創建一個object

大概應該是這樣的:

myDiv.css({ 
    "left": pos.left + "px", 
    "top": pos.top + "px" 
}); 
+1

一個真正DAH MOMNT ...謝謝。 – santa 2012-04-02 17:56:38

4

簡單的修補程序,使用JavaScript對象符號爲CSS屬性。移動結腸引號外:

myDiv.css({ "left": pos.left + "px", "top": pos.top + "px" });

-1

你需要圍繞在對象中的值的引號,你傳遞給的.css()函數:

myDiv.css({ "left: '" + pos.left + "px'", "top: '" + pos.top + "px'" }); 
+0

這仍然是無效的JS對象語法。它應該是:'{key:val,key:val}' – 2012-04-02 17:58:04