0

我有一个元素,单击时会检查不同元素的类。

如果它有一个特定的类,它将删除它,并用不同的类替换它。同样,如果单击,它将使用交换的类名反转该过程。

(给一个视觉,这个类是一个可爱的星形图标,它是阴影版本)

我认为我下面的代码有点过于冗长。
任何人都可以看到更好/更短的方式来说明它吗?

<script language="javascript" type="text/javascript">
$(document).ready(function(){


   $(".clickme").click(function(){ 

     if($("#staricon").hasClass("starON")){

         $("#staricon").removeClass("starON").addClass("starSHADED"); 

     }else if($("#staricon").hasClass("starSHADED")){

         $("#staricon").removeClass("starSHADED").addClass("starON");   
     }


  });

});
</script>

此外,starON并且starSHADED是精灵的一部分。
上面的代码有效!但我确信它可以被优化。

我看到 jQuery 有一个.toggleClass()API,我正在错误地交换这两个类。

4

2 回答 2

2

首先,将您选择的元素设置为一个变量(如果您将多次对其进行操作,那么对于 jQuery 来说总是一个很好的经验法则)。

其次,您需要为两个州开设课程是否有特殊原因?默认情况下,我会给它一个阴影星形图像,并在它具有 starON 类时覆盖它。然后一个人toggleClass就可以完成所有的工作。

$('#staricon').toggleClass("starON");
于 2013-02-02T00:18:38.520 回答
0
$('#staricon').toggleClass('starSHADED').toggleClass('starON');
于 2013-02-02T00:15:04.170 回答