2013-01-17 48 views
0

Perhabs這個問題應該被命名爲:如何通過哈希動畫jQuery的對象。如何將字符串對象轉換爲實物

不論如何......我如何將字符串轉換成一個對象?我試過JSON.parse$.parseJSON但收到以下錯誤消息:Uncaught SyntaxError: Unexpected token t

我盡力去完成:我想動畫的jQuery通過散列對象。

這是我目前的狀態(也許有一個更好的方式然後告訴我嗎?!):

var params = (location.hash || '#').substr(1).split('|'); 
$.map(params, function (e) { 
    var parts = e.split('='); 
    $(parts[0]).animate(parts[1]); 
    console.log(typeof parts[1]); // 2 `string` 
}); 

使用此fiddle和重視這些散列的網址:

##foo={top:100,left:100}|#bar={top:100,right:100}

(對不起,降價不允許我將這種散列直接附加到鏈接)。

回答

0

您的JSON是無效的。 (將其粘貼到http://jsonlint.com/,並看到自己。)

JSON比JavaScript語法嚴格,需要引用對象鍵:

##foo={"top":100,"left":100}|#bar={"top":100,"right":100} 

如果你把引號topleft,並right,那麼你可以只直接在JSON字符串上使用JSON.parse$.parseJSON

+0

啊,該死!很好,謝謝♥ – yckart

0

JSON是不是JavaScript更嚴格一點。該參數將有看起來像這樣的JSON評價:

{"top":100,"right":100} 

如果你不希望出現這種情況,你必須採取良好的醇」 eval()

var params = eval('(' + parts + ')'); 

不過,既然你那麼允許執行的任意JS通過URL,這可能不是你想要的方式。