【发布时间】:2016-12-25 09:16:06
【问题描述】:
我有 3 个带有单选按钮标签的按钮,所以基本上对单选的控制由这 3 个按钮管理。
<input type="radio" name="block_image_checkbox" id="block_image_checkbox_1" value="a">
<label for="block_image_checkbox_1">
<div id="block_image_1" class="block_image block_image_hover">
<div class="block_image_overlay">
<img src="img/1-1.png" alt="" id="image"/>
</div>
</div>
</label>
<input type="radio" name="block_image_checkbox" id="block_image_checkbox_2" value="b">
<label for="block_image_checkbox_2">
<div id="block_image_2" class="block_image block_image_hover">
<div class="block_image_overlay">
<img src="img/2-1.png" alt="" id="image"/>
</div>
</div>
</label>
我使用 jquery 来处理对我的按钮的点击,从而改变它们的视图。我的点击处理程序如下。
$("#block_image_1").click(function() {
if(!$('.block_image_overlay').hasClass('block_image_overlay_active')){
$(this).children('.block_image_overlay').toggleClass('block_image_overlay_active');
$('.block_image').removeClass('block_image_hover');
}
else {
if($(this).children('.block_image_overlay').hasClass('block_image_overlay_active')){
$(this).children('.block_image_overlay').toggleClass('block_image_overlay_active');
$('.block_image').addClass('block_image_hover');
$('#block_image_checkbox_1').prop('checked', false);
}
else{
$('.block_image_overlay_active').toggleClass('block_image_overlay_active');
$(this).children('.block_image_overlay').toggleClass('block_image_overlay_active');
}
}
});
如果我在选中单选按钮时单击它的标签,我想取消选中它。但它不起作用。我想是因为当我尝试取消选中它时,它可能会再次被选中。但是不使用其他按钮有没有解决这种情况的方法?
【问题讨论】:
-
没有
jquery那里发生了什么?单击图像检查了radio按钮? jsfiddle.net/wx38rz5L/2014 -
您正在使用 for in 标签,该标签将始终检查单选按钮,因此我从我的答案中删除可能是在删除答案后会有所帮助,请检查
-
但如果我从标签中删除 for 我将无法通过单击不同的标签来切换单选按钮?
标签: javascript jquery html radio-button