我的这个标记是我的一个网页,
<div class="radio-spoof">
<input type="radio" name="enquiry" value="General enquiry" class="radio"/>
<div class="checked"></div>
</div>
<label for="general_enquiry">General enquiry</label>
<div class="radio-spoof">
<input type="radio" name="enquiry" value="Request a brochure" class="radio" checked="true"/>
<div class="checked"></div>
</div>
<label for="request_a_brochure">Request a brochure</label>
基本上我正在做的是试图欺骗一些单选按钮,所以我可以看起来很漂亮,当收到一个收音机我希望显示.checked
默认设置为display:none
。我需要在DOMReady上检查一个已检查的单选按钮,当点击一个无线电时,目前我有这个页面,但它似乎没有正确选择.checked div。
if($('input[type=radio]:checked')) {
console.log("!");
$(this).parent().children('div').show();
}
我希望上面的代码选择单选按钮parent,然后查找子div(.checked)并显示它。我错了吗? `
答案 0 :(得分:0)
演示您需要在复选框状态更改时注册活动:http://jsfiddle.net/FtPLS/2/ 或 http://jsfiddle.net/QCkpG/1/
.next
代替.children
。 .checked
,请执行此操作=&gt; $('.checked').hide()
$('input[type=radio]').is(':checked')
作为检查/取消选中条件。希望这有助于推动事业,:)
<强>码强>
$(function() {
// here ==> $('.checked').hide(); will hide all the div with checked class
$('input').click(function() { // can use .change instead if you want
if ($('input[type=radio]').is(':checked')) {
alert('!')
$(this).parent().next('div').show(); // whatever you wanna show or
//$(this).next('div').show();
}
});
});
答案 1 :(得分:0)
对于上述问题,我已经在代码中完成了解决方案。所以,试试http://codebins.com/codes/home/4ldqpb6
解决方案:
$(document).ready(function() {
$('input[type=radio]').each(function() {
if ($(this).is(':checked')) {
$(this).next('.checked').show();
}
$(this).click(function() {
if ($(this).is(':checked')) {
$(this).next('.checked').show();
}
});
});
});
答案 2 :(得分:0)
$(function(){
$(':radio').change(function(){
var $this = $(this);
console.log($this);
$(':radio[name='+this.name+']').next().hide();
if($this.is(':checked')){
$this.next('.checked').show();
}
});
});
答案 3 :(得分:0)
在我看来,你正试图获得定制风格的无线电按钮?我在项目中没有JS的一种非常酷的方式就是这个(适合你的代码):
<强> HTML 强>
<div class="radio-spoof">
<input id="radio-1" type="radio" name="enquiry" value="General enquiry" class="radio"/>
<label for="radio-1">General enquiry</label>
</div>
<强> CSS 强>
.radio-spoof input {
position: absolute;
left: -9999px;
} /* not display: none so it is tabbable */
.radio-spoof label {
display: inline-block;
padding-left: 35px; /* width of your custom image + spacing to text */
height: 30px;
line-height: 30px; /* height of your custom image */
background: url(your/custom/image) center left no-repeat;
}
.radio-spoof input:checked + label {
background-image: url(your/custom/active/image);
}
每次点击标签时,复选框都会切换,它们通过输入ID和标签连接,标签获取输入样式。
如果您希望复选框看起来像默认,如果它们未被选中,您可以将其设置为:
<强> CSS 强>
.radio-spoof input + label { display: none }
.radio-spoof input:checked {
position: absolute;
left: -9999px;
}
.radio-spoof input:checked + label {
display: inline-block;
padding-left: 35px; /* width of your custom image + spacing to text */
height: 30px;
line-height: 30px; /* height of your custom image */
background: url(your/custom/image) center left no-repeat;
}
然后你有默认的无线电,如果他们被检查,标签就取代了......