我的网站包含单选按钮和复选框。
当用户在表单中选择一个并提交时,该状态会被存储,这样当用户返回页面时,它会按照用户之前的选择加载到该状态。
其中一些复选框具有子元素,当它们的父元素被选中时,它们会更改其禁用属性,以便可以与之交互。
我使用 jQuery 函数来实现这一点。
如果用户之前选择了禁用子元素的父元素,那么当他们返回页面时,我需要启用子元素运行的函数。
每次用户在浏览会话期间选择一个时,我还需要运行此功能。
我目前可以通过复制我的 jQuery 函数来实现这一点,一次是在 When DOM Ready 封装中,一次是没有这个。
我怀疑这是不好的做法,我是否正确,如果是,我应该怎么做?
为了说明我的观点,举个例子:
//First the code for DOM ready:
//You can see it disables and unchecks boxes if they are not checked etc.
$(function() {
if ($('#parent').is(':checked')) {
$('#child1').removeAttr('disabled');
$('#child2').removeAttr('disabled');
} else {
$('#child1').attr('disabled', true);
$('#child1').removeAttr('checked');
$('#child2').attr('disabled', true);
$('#child2').removeAttr('checked');
}
});
//Now, the exact same function just without the DOM ready encapsulation.
if ($('#parent').is(':checked')) {
$('#child1').removeAttr('disabled');
$('#child2').removeAttr('disabled');
} else {
$('#child1').attr('disabled', true);
$('#child1').removeAttr('checked');
$('#child2').attr('disabled', true);
$('#child2').removeAttr('checked');
}
谢谢你的建议。