Discuss / JavaScript / 111111111

111111111

Topic source

Cool

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

    var flag = true;//true代表此时为全选功能,false代表此时为全不选功能

    var switchTo = function (type) {

        if (type) {

            selectAllLabel.show();

            deselectAllLabel.hide();

            flag = true;

        } else {

            selectAllLabel.hide();

            deselectAllLabel.show();

            flag = false;

        }

        selectAll.prop('checked', false);

    }

    var toggleFunc = function () {

        if (flag) {

            langs.prop('checked', true);

            switchTo(false);

        } else {

            langs.prop('checked', false);

            switchTo(true);

        }

    }

    var invertFunc = function () {

        var shouldChangeToSelectAll = true;//判断全不选时 是否全选了选项 反转时就要切换为全选功能

        var shouldChangeToDeselectAll = true;//判断全选时,是否全不选选项 反转时就要切换为全不选功能

        langs.map(function () {

            var tmp = $(this).prop('checked');

            if (!tmp) {

                shouldChangeToSelectAll = false;

            } else {

                shouldChangeToDeselectAll = false;

            }

            $(this).prop('checked', !tmp);

            return this;

        });

        if (!flag && shouldChangeToSelectAll) {

            switchTo(true);

        }

        if (flag && shouldChangeToDeselectAll) {

            switchTo(false);

        }

    };

    var langsFunc = function () {

        var shouldChange = true;//判断全选功能下是否要切换为全不选功能或者全不选功能切换为全选功能

        langs.map(function () {

            return $(this).prop('checked') ? true : shouldChange = false;

        });

        if (shouldChange) {

            switchTo(false);

        }

        if (!flag && !shouldChange) {

           switchTo(true);

        }

    };

    selectAll.click(toggleFunc);

    invertSelect.click(invertFunc);

    langs.click(langsFunc);


  • 1

Reply