我有这段代码
<input type="radio" name="type" value="premium">
<input type="radio" name="type" value="free">
<div id="paypremium">Premium infos</div>
$('[name="type"]').on('change', function() {
$('#paypremium').toggle(this.value == 'premium');
}).change();
如果我检查相关的单选按钮,所需的div显示就好了。 但是,如果预先选中单选按钮,则不会显示相关的div ...仅当我主动单击单选按钮时它才有效。
如果预先选中单选按钮,如何显示div?
编辑:问题已经解决,但我意识到另一段代码阻止代码工作
$(document).ready(function(){
$("a[rel^='prettyPhoto']").prettyPhoto();
});
$(document).ready(function(){
$('[name="type"]').on('change', function() {
$('#paypremium').toggle(this.value == 'premium');
}).filter(':checked').change();
});
它有什么问题吗?
答案 0 :(得分:2)
使用.change()
您的代码将遍历所有[name="type"]
无线电输入,并且它会为您提供最后一个的操作..这意味着如果您的premium
无线电不是它消失的最后一个收音机..你需要使用.filter(':checked').change();
$(document).ready(function(){
$('[name="type"]').on('change', function() {
$('#paypremium').toggle(this.value == 'premium');
}).filter(':checked').change();
});
#paypremium{
display : none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="radio" name="type" checked value="premium">
<input type="radio" name="type" value="free">
<div id="paypremium">Premium infos</div>