重构后
//检查是否全选函数 function isSelectAll() { if ( langs.filter(function() { return $(this).is(":checked"); }).length === langs.length ) return true; else return false; } //勾选事件 langs.change(function() { if (isSelectAll()) { selectAllLabel.hide(); deselectAllLabel.show(); selectAll.prop("checked", true); } else { selectAllLabel.show(); deselectAllLabel.hide(); selectAll.prop("checked", false); } }); //全选事件 selectAll.click(function() { if (isSelectAll()) { langs.prop("checked", false); langs.change(); } else { langs.prop("checked", true); langs.change(); } }); //反选事件 invertSelect.click(function() { langs.map(function() { var jo = $(this); if (jo.is(":checked")) jo.prop("checked", false); else jo.prop("checked", true); }); langs.change(); });
重构前
var is_selectedAll = false; selectAll.click(function() { selectAll.prop("checked", false); if (is_selectedAll) { selectAllLabel.show(); deselectAllLabel.hide(); langs.map(function() { $(this).prop("checked", false); }); is_selectedAll = false; } else { selectAllLabel.hide(); deselectAllLabel.show(); langs.map(function() { $(this).prop("checked", true); }); is_selectedAll = true; } }); invertSelect.click(function() { selectAll.prop("checked", false); langs.map(function() { let jo = $(this); if (jo.is(":checked")) { jo.prop("checked", false); } else { jo.prop("checked", true); } }); }); langs.change(function() { let checked = langs.filter(function() { let jo = $(this); return !jo.is(":checked"); }); if (checked.length === 0) { is_selectedAll = true; selectAllLabel.hide(); deselectAllLabel.show(); selectAll.prop("checked", true); } else if (checked.length < langs.length) { selectAllLabel.show(); deselectAllLabel.hide(); selectAll.prop("checked", false); } });
Sign in to make a reply
猎杀属性
重构后
重构前