该.toggle()
方法接受一个布尔值showOrHide
:
jQuery("input[name='newstate']").change(function(){
// You can use this.checked instead of jQuery(this).attr("checked");
jQuery('input[name="new-state-name"]').toggle(this.checked);
});
这样,您将知道输入new-state-name
的显示状态始终与newstate
输入匹配(即,它会在选中时显示,而不考虑它的先前状态)。我的意思是,如果输入的显示状态是从处理程序外部操作的,那么在toggle()
没有showOrHide
您的情况下使用可能会导致newstate
状态和new-state-name
显示状态不同步。new-state-name
newstate
change()
当然,您也可以只将结果集分配给一个临时变量,以便只执行一次选择器:
jQuery("input[name='newstate']").change(function(){
var newStateInput = jQuery('input[name="new-state-name"]');
if(this.checked) {
newStateInput.show();
// ... more here
} else {
newStateInput.hide();
// ... and/or here
}
});
如果您打算做的不仅仅是显示/隐藏。
编辑
哎呀,不幸的错字。show()
应该toggle()
在第一个解决方案中。