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}
(抱歉markdown不允许我直接将这种哈希附加到链接上。)
答案 0 :(得分:0)
JSON比JavaScript更严格。对于JSON评估,参数必须如此:
{"top":100,"right":100}
如果你不想那样,你必须求助于'eval()
:
var params = eval('(' + parts + ')');
但是,由于您允许通过URL执行任意JS,这可能不是您正在寻找的方式。
答案 1 :(得分:0)
您的JSON无效。 (将其粘贴到http://jsonlint.com/并自行查看。)
JSON比JavaScript语法更严格,需要引用的对象键:
##foo={"top":100,"left":100}|#bar={"top":100,"right":100}
如果您在top
,left
和right
周围加上引号,那么您可以直接在JSON字符串上使用JSON.parse
或$.parseJSON
。< / p>