// TODO:绑定事件 一个jqtest //全选与否A selectAll.change(function () { let flag = selectAll.is(":checked"); //form.find(':checkbox').prop('checked', !flag) //console.log(flag) langs.prop("checked", flag); if (flag) { deselectAllLabel.show(); selectAllLabel.hide(); } else { deselectAllLabel.hide(); selectAllLabel.show(); } }); //反选B invertSelect.click(function () { for (var i = 0; i < langs.length; i++) { //langs.eq(i).prop('checked',!langs.eq(i).is(':checked')) langs.eq(i).prop("checked", !langs.eq(i).prop("checked")); } handan(); //评论区的做法 //langs.get().forEach(el => $(el).prop('checked', !$(el).is(':checked'))); //checkAllOrDeAll(); }); //判断后两个C //当用户手动 ==>langs.change尤为合理 langs.change(function () { handan(); }); //判断 将这个逻辑拿出来供A与C使用,目的是为了更合理的实现反选也能选中第一个复选框. function handan() { var flag = true; var i = 0; for (i = 0; i < langs.length; i++) { if (!flag == langs.eq(i).prop("checked")) { flag = false; } //console.log(flag) //console.log("i:"+i) } console.log(`最终的flag值为${flag}`); console.log(`最终的i值为${i}`); if (i == langs.length && flag == true) { deselectAllLabel.show(); selectAllLabel.hide(); selectAll.prop("checked", true); } else { deselectAllLabel.hide(); selectAllLabel.show(); selectAll.prop("checked", false); } }
Sign in to make a reply
韩承欣