0

おそらく、この質問の名前は次のとおりです: How to animate jQuery-objects through hash .

とにかく...どうすれば文字列をオブジェクトに変換できますか? 試してみまし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`
});

このフィドルを使用して、これらのハッシュを URL に添付します。

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

(申し訳ありませんが、マークダウンでは、この種のハッシュをリンクに直接追加することはできません)。

4

2 に答える 2

0

JSON は JavaScript よりも少し厳密です。パラメータは、JSON 評価のために次のようにする必要があります。

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

それを望まない場合は、古き良き方法に頼る必要がありますeval()

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

ただし、URL を介して任意の JS の実行を許可するため、それはあなたが探している方法ではない可能性があります。

于 2013-01-17T17:10:18.183 に答える
0

JSON が無効です。( http://jsonlint.com/に貼り付けて、自分の目で確かめてください。)

JSON は JavaScript 構文よりも厳密であり、引用符で囲まれたオブジェクト キーが必要です。

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

topleft、およびを引用符で囲むと、JSON 文字列に対してorを直接right使用できます。JSON.parse$.parseJSON

于 2013-01-17T17:10:33.913 に答える