2013-01-17 3 views
0

Perhabs이 질문의 이름은 이어야합니다. 해시를 통해 jQuery 개체에 애니메이션을 적용하는 방법.문자열 개체를 실제 개체로 변환하는 방법

어떻게합니까? 문자열을 객체로 변환하려면 어떻게해야합니까? JSON.parse$.parseJSON을 시도했지만 다음 오류 메시지가 표시됩니다. Uncaught SyntaxError: Unexpected token t.

해보려는 것 : 해시를 통해 jQuery 객체에 애니메이션을 적용하고 싶습니다. (!? 어쩌면 나에게 말해 그리고 더 나은 방법이있다)이 fiddle

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}

(죄송합니다. markdown을 사용하면 이러한 종류의 해시를 직접 링크에 추가 할 수 없습니다.)

답변

0

JSON이 유효하지 않습니다. (http://jsonlint.com/에 붙여 넣하고 직접 참조하십시오.)

JSON은 자바 스크립트 구문보다 엄격한하고 인용 객체 키가 필요합니다 right

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

당신이 top, left 주위에 따옴표를 넣어 경우, 그리고, 당신은 단지 수 JSON 문자열에 JSON.parse 또는 $.parseJSON을 직접 사용하십시오.

+0

아, 젠장! 니스, 고마워요 ♥ – yckart

0

JSON은 JavaScript보다 약간 엄격합니다. 그런 다음 실행을 허용하기 때문에,

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

그러나 : 당신이 원하지 않는 경우

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

, 당신은 좋은 똑똑한 'eval()에 의지해야합니다 매개 변수는 JSON 평가를 위해 다음과 같이 할 것 URL을 통해 임의의 JS의, 그건 당신이 찾고있는 방법이되지 않을 수도 있습니다.

관련 문제