Discuss / JavaScript / 测试过了. 没有任何bug. 而且逻辑也很好理解.

测试过了. 没有任何bug. 而且逻辑也很好理解.

Topic source

~曉瘋~

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

// 构造全选按钮事件处理函数

function sall(c) {

    // 修改全选按钮的赋值

    selectAll.prop('checked',c);

    // 调整文字显示.

    if (c){

        selectAllLabel.hide();

        deselectAllLabel.show();

    } else {

        selectAllLabel.show();

        deselectAllLabel.hide();

    }

}

// 获取是否langs全选

function getlangscheck (){

    // 循环检查是否全部勾选了.只要有一个没勾选就返回false

    for ( let i = 0 ; i < langs.length ; i++ ){

        if (langs[i].checked === false) {

            return false;

        }

    }

    return true

}

// 绑定反选事件

invertSelect.click(function (){

    // 把选项反转

    langs.map(function () { this.checked = !this.checked } );

    // 检查是否全选.调整全选按钮.

    sall(getlangscheck())

});

// 绑定全选按钮事件

selectAll.click( function() {

    // 循环langs里面的选项, 把所有的勾勾全部赋值成期望的.

    langs.map(function () { this.checked = selectAll.prop('checked') } );

    // 然后操作全选按钮到期望值.

    sall(selectAll.prop('checked'))

});

// 绑定子选项按钮事件

langs.click( function () {

    // 检查是否全部选择了. 然后将结果对全新按钮进行修改.

    sall(getlangscheck());

});


  • 1

Reply