2012-05-21 7 views
1

나는 학생을위한 평가 시스템에서 일하고 있습니다. 교사가 클릭 할 때 학생의 학년을 변경하고 싶습니다. 나는 "A", "B"를 클릭 한 후 ... & 이렇게 전환하는 2 개의 "등급"이미지를 가지고 있습니다. JQuery와에 쉽게 무언가 또는 버튼 모양을 변경하거나 이미지를 전환 할 수있는 뭔가가있을 수 있습니다, 내 생각클릭하면 모양이 바뀝니다

function ChangeClass(object) 
    { 

        var objectClass = $(object).attr('class'); 


       if (objectClass == 'zero') { 

           $(object).removeClass('zero'); 
           $(object).addClass('one'); 

       } 
       else if (objectClass == 'one') 
       { 

           $(object).removeClass('one'); 
           $(object).addClass('two'); 
       } 
       else if (objectClass == 'two') { 
           $(object).removeClass('two'); 
           $(object).addClass('zero'); 
       } 
   } 

을하지만이 솔루션을 좋아하지 않는다 : 다음과 같이 지금,이 작업을 달성하는 기능을 사용 와. jQuery를의 필요가 없습니다

var classes = ["zero", "one", "two"], 
    i = classes.indexOf(object.className); 
object.className = classes[(i + 1) % classes.length]; 

하지만 배열 indexOf는 IE8에 의해 낮은 지원되지 않음을 명심하고 : 당신이 어떤 아이디어가 있으면, 공유하시기 바랍니다 =)

답변

4

이 시도 에뮬레이션되어야합니다.

나는 object이 유효한 DOM 요소라고 가정합니다. 당신은 모든 브라우저에서 작동 jQuery를 사용하려면

1

당신은 그것을 사용할 수 있습니다

 var max = 3; //total button or button class 
     function ChangeClass(object){ 
           var i = $(object).split('_')[1]; //this will explode 1 from className_1 
           var a = "className_" + i; // instead of zero, one, two use className_1, className_2, className_3 
           var b = (i+1) % max; 
           b = "className_" + b; 
           var x = "." + a; 
           $(x).click(function(){ 
            $(this).removeClass(a).addClass(b); 
           }); 
           } 

당신은뿐만 아니라 3 개 버튼-0, 1, 이틀, 버튼의 수를 위해이 솔루션을 사용할 수 있습니다. 이게 도움이되기를 바랍니다!

관련 문제