Javascript:点击更改按钮文字颜色

时间:2013-02-13 01:55:02

标签: javascript html css

嘿,我有以下带有HTML的javascript代码。我试图在单击时将每个按钮更改为蓝色,然后在单击下一个按钮时将以前单击的按钮的文本更改回绿色。基本上只有最近点击的按钮才有蓝色文字。我已经尝试过这段代码,但是在第一次点击按钮时,它会将所有按钮文本更改为蓝色。任何帮助表示赞赏。下面是Javascript,HTML和CSS。

function swapIphoneImage( tmpIPhoneImage ) {
    var el = document.getElementById('my-link');
    var el1 = document.getElementById('my-link1');
    var el2 = document.getElementById('my-link2');
    var el3 = document.getElementById('my-link3');
    var el4 = document.getElementById('my-link4');

    var iphoneImage = document.getElementById('iphoneImage');
    iphoneImage.src = tmpIPhoneImage;
    el.className = 'clicked-class';
    el1.className = 'clicked-class1';
    el2.className = 'clicked-class2';
    el3.className = 'clicked-class3';
    el4.className = 'clicked-class4';

}

HTML

<ul class="features">
    <li><a id="my-link"  href="javascript:swapIphoneImage('wscalendarws.png');" title="">HaPPPs Calendar</a></li>
    <li><a id="my-link1"  href="javascript:swapIphoneImage('wsweekendws.png');" title="">Weekend Events</a></li>
    <li><a id="my-link2"  href="javascript:swapIphoneImage('wsfollowingws.png');" title="">Places & People</a></li>
    <li><a id="my-link3"  href="javascript:swapIphoneImage('wstemplateviewws.png');" title="">Customize Events</a></li>
    <li><a id="my-link4"  href="javascript:swapIphoneImage('wscheckinws.png');" title="">Interaction</a></li>
</ul>
  

CSS

a#my-link.clicked-class {
    color: #71a1ff !important;
}
a#my-link1.clicked-class1 {
    color: #71a1ff !important;
}
a#my-link2.clicked-class2 {
    color: #71a1ff !important;
}
a#my-link3.clicked-class3 {
    color: #71a1ff !important;
}
a#my-link4.clicked-class4 {
    color: #71a1ff !important;
}
  

我在哪里失败?

3 个答案:

答案 0 :(得分:2)

尝试使用JavaScript更改类,然后只需要一个类来确定单击哪一个。

以下是一个例子:

JS:

   $("UL.features LI A").click(function(){
      $("UL.features LI A").removeClass('clicked');
      $(this).addClass('clicked');
   });

CSS:

A.clicked {
    color:#71a1ff !important;
}

这里是jsfiddle:  http://jsfiddle.net/57PBm/

编辑:此解决方案使用JQuery,如果您尚未使用我肯定会建议使用

答案 1 :(得分:1)

将JS代码重写为:

function swapIphoneImage( elThis, tmpIPhoneImage ) {
    var el = document.getElementByClassName('clicked-class');

    var iphoneImage = document.getElementById('iphoneImage');
    iphoneImage.src = tmpIPhoneImage;

    el.className = '';
    elThis.className = 'clicked-class';
}

和每个按钮:

<li><a id="my-link" href="javascript:swapIphoneImage(this, 'wscalendarws.png');" title="">HaPPPs Calendar</a></li>

您不需要为同一件事设置5个CSS类。

答案 2 :(得分:0)

您正在将每个元素更改为单击的类。只需将一个数字传递给功能,该功能可以识别哪个按钮颜色为蓝色,然后通过JS为蓝色和所有其他按钮着色。