Javascript 按钮不会改变颜色(HTML5)
我有三个类似单选按钮的按钮,一次只能选择一个:Javascript 按钮不会改变颜色(HTML5),javascript,jquery,html,css,Javascript,Jquery,Html,Css,我有三个类似单选按钮的按钮,一次只能选择一个: <button id="btn-bronze" name="btn-bronze" type="button" class="blue-selected">Bronze</button> <button id="btn-silver" name="btn-silver" type="button">Silver</button> <button id="btn-gold" name="btn-g
<button id="btn-bronze" name="btn-bronze" type="button" class="blue-selected">Bronze</button>
<button id="btn-silver" name="btn-silver" type="button">Silver</button>
<button id="btn-gold" name="btn-gold" type="button">Gold</button>
选择后,所选按钮应添加此类以修改背景色:
.blue-selected
{
background: -webkit-gradient(linear, left top, left bottom, color-stop(0.0, #FFFFFF), color-stop(1.0, #6699CC));;
}
这是使用jQuery
在主体加载时调用的方法完成的:
$("#btn-bronze").click(function()
{
console.log("bronze");
$(this).addClass('blue-selected');
$("#btn-silver").removeClass('blue-selected');
$("#btn-gold").removeClass('blue-selected');
});
$("#btn-silver").click(function()
{
console.log("silver");
$("#btn-broze").removeClass('blue-selected');
$(this).addClass('blue-selected');
$("#btn-gold").removeClass('blue-selected');
});
$("#btn-gold").click(function()
{
console.log("gold");
$("#btn-broze").removeClass('blue-selected');
$("#btn-silver").removeClass('blue-selected');
$(this).addClass('blue-selected');
});
单击其中一个按钮时,将显示console日志消息,但背景颜色保持不变。我做错了什么#btn BRONZER
比具有更高的特异性。选择蓝色
,因此其背景优先
您可以通过使用绕过此问题!重要信息
,但这可能不是最好的解决方案
最可靠的方法是,如果父元素也有一个ID,那么您可以选择#parent element>.blue selected
并获得更高的特异性。#btn brown
比具有更高的特异性。blue selected
,因此其背景优先
您可以通过使用绕过此问题!重要信息
,但这可能不是最好的解决方案
最可靠的方法是,如果父元素也有一个ID,那么您可以选择
#parent element>。蓝色选择
,并获得更高的特异性。ID选择器的优先级高于类选择器。您可以在css代码中使用important
。ID选择器的优先级高于类选择器。您可以在css代码中使用important
。我会解决一些问题
使用类而不是ID目标。我把身份证留在里面了,但你现在真的不需要了:
<button class="btn" id="btn-bronze" name="btn-bronze" type="button" class="blue-selected">Bronze</button>
<button class="btn" id="btn-silver" name="btn-silver" type="button">Silver</button>
<button class="btn" id="btn-gold" name="btn-gold" type="button">Gold</button>
最后,我将简化javascript的所有功能:
$(".btn").click(function () {
$(".btn").removeClass("blue-selected");
$(this).addClass('blue-selected');
});
我会解决一些问题 使用类而不是ID目标。我把身份证留在里面了,但你现在真的不需要了:
<button class="btn" id="btn-bronze" name="btn-bronze" type="button" class="blue-selected">Bronze</button>
<button class="btn" id="btn-silver" name="btn-silver" type="button">Silver</button>
<button class="btn" id="btn-gold" name="btn-gold" type="button">Gold</button>
最后,我将简化javascript的所有功能:
$(".btn").click(function () {
$(".btn").removeClass("blue-selected");
$(this).addClass('blue-selected');
});
我制作了一个简化版的JSFIDLE来解决您的问题:我制作了一个简化版的JSFIDLE来解决您的问题:哇,谢谢您的修复/简化!哇,谢谢你的修复/简化!