Discuss / JavaScript / handan是手动判断的逻辑

handan是手动判断的逻辑

Topic source

韩承欣

#1 Created at ... [Delete] [Delete and Lock User]

//全选与否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){

selectAll.prop('checked',true)

}else{

selectAll.prop('checked',false)

}

}


  • 1

Reply