我有一个功能,每次有人单击复选框时都会执行该功能,并且取决于复选框是选中还是未选中,可能会发生不同的事情。但是,在提交表单后,会加载以前的值,我希望根据是否选中该框来应用相同的更改。这给我留下了两个相同的功能
示例代码:
// !- Bind checkboxes to show divs
$('input[type="checkbox"]').bind("change", function(){
if ($(this).is(":checked")) {
$("#"+$(this).data('toggle')).show();
}
else {
$("#"+$(this).data('toggle')).hide();
}
});
// Init checkboxes which are already checked via previous selection
$('input[type="checkbox"]').each(function(index){
if ($(this).is(":checked")) {
$("#"+$(this).data('toggle')).show();
}
else {
$("#"+$(this).data('toggle')).hide();
}
});
我知道使用绑定,您可以添加多个事件,但是每个函数都不是一个事件,我不确定如何清理它。我是否被迫创建一个单独的函数并继续使用 bind() 和 each() 但对两者都使用回调,还是有更优雅的解决方案?