2014-10-10 72 views
1

我有单选按钮+图片。但问题是,如果页面已加载所有单选按钮有颜色:无。 (这很好),如果我点击第一个按钮比颜色变灰和按钮:选中,但如果我点击secound按钮,然后按钮更改颜色和::选中,但第一个按钮的颜色仍然是灰色。如何取消选择第一个按钮上的颜色。未选中时更改单选按钮颜色

<div id="my_div"> 
input type="radio" name="site" id="so"><label for="so"><img src="/icons/disp.jpg"><br>Title1</label> 
<input type="radio" name="site" id="sf"><label for="sf"><img src="/icons/metal.jpg"><br>MetTitle2</label> 
</div> 

jQuery的

$('#my_div input:radio').addClass('input_hidden'); 
$('#my_div label').click(function() { 
    $(this).addClass('selected').siblings().removeClass('selected'); 
}); 

CSS

.input_hidden { 
    position: absolute; 
    display:none; 

} 

.selected { 
    background-color: #ccc; 
} 



#my_div label { 
    display: inline-block; 
    cursor: pointer; 
} 


#my_div label:hover { 
    background-color:forestgreen; 
} 

#my_div label img { 
    padding: 3px; 

} 
+0

为什么'td'标签? ... – 2014-10-10 09:02:28

+0

错误的复制/粘贴对不起 – Klapsius 2014-10-10 09:04:20

+0

我[没看到问题](http://jsfiddle.net/54w094bs/)你在说什么...?顺便说一句,你缺少'<'输入以及'

回答

3

您可以通过使用纯CSS这样实现这一点:

input[type="radio"]:checked+label { 
 
    background-color: #ccc; 
 
} 
 
.input_hidden { 
 
    position: absolute; 
 
    display:none; 
 
} 
 
#my_div label { 
 
    display: inline-block; 
 
    cursor: pointer; 
 
} 
 
#my_div label:hover { 
 
    background-color:forestgreen; 
 
} 
 
#my_div label img { 
 
    padding: 3px; 
 
}
<div id="my_div"> 
 
    <input type="radio" name="site" id="so"><label for="so"><img src="/icons/disp.jpg"><br>Title1</label> 
 
    <input type="radio" name="site" id="sf"><label for="sf"><img src="/icons/metal.jpg"><br>MetTitle2</label> 
 
</div>