2013-08-29 5 views
2

DIV를 회전해야하지만 문제가 없습니다. JSON 구문 분석 중입니다. 변수에서 적절한 attr 값을 가져오고 싶습니다. rotateAttrSet 브라우저 유형에 따라 가져 오기JSON 구문 구문 분석이 불가능합니다.

할 수 있습니다. var rotateAttr = rSET.FF;,하지만 할 수 없어 var rotateAttr = rSET.brwShort;

이 방법을 사용할 수 있습니까? 다시, 나는 DIV를 회전하는 방법을 찾고 있지 않다, 그냥 변수로 JSON 작업을 얻을 수있는 방법이있는 경우 (아래 같은 .brwShort)

감사

<script> 
var rotateAttrSet = '{"IE":"-ms-transform","FF":"-moz-transform","CR":"-webkit-transform","SF":"-webkit-transform","OP":"-o-transform","WC3":"transform"}'; 

function rotator(o) 
{ 
    var o = $(o); 
    var angle = 0; 

    var rSET = parseJSON(rotateAttrSet); 
    var brwShort = "FF";//getBrowser().split(";")[2]; 
    var rotateAttr = rSET.brwShort; 

//alert(rotateAttr); 
    //o.removeAttr("onClick"); 
    setInterval(function(){ 
     angle++; 
     if(angle == 360) angle = 0; 
     o.text(angle); 
     o.css(rotateAttr, "rotate("+angle+"deg)"); 
    }, 10); 
} 

function parseJSON(s) 
{ 
    return eval('('+s+')'); 
} 

</script> 
을 알고 싶어요

var brwShort = "FF";//getBrowser().split(";")[2]; 
var rotateAttr = rSET[brwShort]; 

를 그렇지 않으면 실제로 객체에 존재하지 않는 "brwShort"의 키를 사용하여 객체에 속성을 찾고, 다음과 같이

+1

jQuery를 사용하는 경우 사용자 정의 함수가 아니라'$ .parseJSON'을 호출해야합니다. – bfavaretto

+1

이것이 실제 코드입니까? 그렇다면 JSON으로 파싱해야 할 필요가있는 이유는 무엇입니까? 그냥 각 끝에서 따옴표를 제거하고 완벽하게 정상적인 자바 스크립트 개체이고 전혀 구문 분석을 수행 할 필요가 없습니다. 또한, JSON을 파싱하기 위해'eval()'을 사용하지 마십시오. IE8 이상의 모든 브라우저는'JSON.parse()'함수를 포함합니다. IE7 또는 다른 오래된 브라우저의 경우에는 타사 json2.js 스크립트를 사용해야합니다. – Spudley

답변

3

당신은 키로서 짧은 브라우저를 사용해야합니다 .

+0

예,'obj.property'는'obj [ 'property']'와 동의어입니다 ('var obj = { 'property': 'foo'}'둘 다'foo'를 줄 것입니다) –

관련 문제