1

我正在为学生制定一个评估系统。当老师点击它时,我想更改学生的成绩。我有 2 个“等级”图像可以像这样切换:“A”,然后单击“B”……等等。我现在使用一个函数来完成这个任务,如下:

  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 中可能有一些更简单的东西,或者改变按钮形状或切换图像的东西。如果您有任何想法,请分享他们=)

4

2 回答 2

4

试试这个:

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

不需要 jQuery,但请记住,indexOfIE8 及更低版本不支持 for 数组,必须对其进行仿真。

我假设这object是一个有效的 DOM 元素。

于 2012-05-21T13:27:51.910 回答
1

如果您想在所有浏览器中使用 jquery,您可以使用它:

       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);
                                });  
                              }

You can use this solution for any number of buttons, not only for 3 buttons-zero, one, two. I hope this will help !

于 2012-05-21T13:57:50.070 回答