我正在尝试构建类似wordpress选项的内容,以便在创建和文章时切换字段可见性。我构建的是依赖于$.click
函数,该函数使用相应的字段名称切换父级,我想知道如果选中复选框,最好的方法是什么,因为我的代码会弄乱如果您选中一个框并重新加载页面,因为它是一次点击而不是实际检查该框。提前谢谢!
HTML
<input type="checkbox" name="title">
<span class="caption">Title</span>
<div class="hidden">
<h2>Title</h2>
<input type="text" name="title">
<span class="caption">Lorem</span>
</div>
的jQuery
$('input[type="checkbox"]').click(function(){
var item = $(this).attr('name');
$('input[name="'+item+'"][type="text"]').parent().toggle();
});
答案 0 :(得分:8)
假设您在外部控制复选框的已检查状态...
演示:http://jsfiddle.net/zgrRd/5/
换句话说,当页面加载时,将评估复选框所处的状态,因此如果未选中框,则相应的元素将开始隐藏。因此,如果您设置的值服务器端会检查该框,则此客户端JavaScript应正确评估它。
function evaluate(){
var item = $(this);
var relatedItem = $("#" + item.attr("data-related-item")).parent();
if(item.is(":checked")){
relatedItem.fadeIn();
}else{
relatedItem.fadeOut();
}
}
$('input[type="checkbox"]').click(evaluate).each(evaluate);
<input type="checkbox" data-related-item="title1">
<span class="caption">Title</span>
<div class="hidden">
<h2>Title</h2>
<input type="text" id="title1">
<span class="caption">Lorem</span>
</div>
<hr>
<input type="checkbox" data-related-item="title2" checked>
<span class="caption">Title</span>
<div class="hidden">
<h2>Title</h2>
<input type="text" id="title2">
<span class="caption">Lorem</span>
</div>
请注意我使用data-*
属性。这避免了使用一个字段的name
属性来指示与另一个字段的关系。您可以根据需要合法地命名这些属性,只要它们以data-
为前缀。
答案 1 :(得分:0)
我认为这是Jquery UI Save State Using Cookie,是你在重新加载之间控制状态的缺失部分?
答案 2 :(得分:0)
HTML
<input type="checkbox" id="cbxShowHide"/><label for="cbxShowHide">Show/Hide</label>
<div id="block">Some text here</div>
CSS
#block{display:none;background:#eef;padding:10px;text-align:center;}
javascript / jquery
$('#cbxShowHide').click(function(){
this.checked?$('#block').show(1000):$('#block').hide(1000); //time for show
});