这里就是我想要实现: 我在列表中有四个按钮,每个按钮都有一个白色的背景和独特的颜色边框。当单击一个按钮时,其背景将变为与其边框相同的颜色。当第二个按钮被点击时,第一个按钮返回到正常状态,第二个按钮背景被第二个按钮边框颜色填充。每个按钮都有id为“NAVX”,其中X是从1到4使用Javascript和JQuery来改变CSS属性:JQuery不能改变Javascript已经改变的属性?
一些我一直在使用jQuery的混合和JavaScript来实现这一目标。我试图在点击时使用jQuery来将所有按钮背景设置为白色,并尝试使用JavaScript来填充单击的按钮背景。这是因为我知道jQuery的可以让你收集的所有元素与一个共同的ID字符串:
$('[id^=nav]').css({"background":"#FFFFFF", "color":"#000000"});
同时使用javascript我可以通过点击的ID和颜色参数功能:
<a id="nav1" onclick="changeHeaderColour(this, '#f0e442')"> Button 1 </a>
function changeHeaderColour(navItem, newColor) {
document.getElementById(navItem.id).style.backgroundColor = newColor;
document.getElementById(navItem.id).style.color = newColor;
}
我一直玩弄混合的方式结合这些,改变使用哪些选择器,并篡改核心CSS,我卡住实现以下两件事之一:
- 当一个按钮被点击时,它ge永久卡住填充背景。继续点击按钮套牢所有按钮填写完成。
- 当点击一个按钮,所有按钮获得带有白色背景permantently卡住。
我真的不知道是怎么回事,以实现这一目标。我似乎无法找到不相互覆盖的CSS级别的正确组合。我没有使用过jQuery的addClass()方法,因为每个类都需要一个独特的颜色。如果任何人有任何建议,那将会很棒 - 这似乎是一个简单的任务,我决心自己实现这个目标,但我现在已经持续了好几个小时了!
感谢您的帮助!
附注(不解决您的问题):你不需要这样的:'的document.getElementById(navItem.id)','navItem'就已经是元素你正在通过。 –
啊,是的,我绝望的残余在明确宣布的东西希望一些神奇的解决方案。 – Jonathan