当前位置: 首页 > 工具软件 > ZBOX > 使用案例 >

自定义插件——zBox

司寇琨
2023-12-01
/**
 * Created by zrz on 2015/3/10,17:01.创建zrz工具箱,名称暂定为zBox,为便于调用,特全部小写,即为:zbox.
 * @version 1.0.0 created . 新增一个方便添加全选和单选相互触发的自定义函数selectAll。
 * @version 1.0.1 updated . 重新定义selectAll的选择器。更为方便的指定单选组和全选按钮的选择事件。
 * @version 1.0.2 created . 新增反选按钮与单选按钮的触发事件绑定。
 */

(function (z) {
    z.zbox = {
        /**
         * 全选与单选事件触发
         * @param allCheck 全选的选择器
         * @param radioChecks 单选的参数值 (!!)此处的单选为多选按钮组checkbox的一个按钮
         */
        selectAll: function (allCheck, radioChecks) {
            //筛选单选按钮组
            var radioValueEles = $(radioChecks);
            //点击全选时,同组按钮被同步
            $(document).delegate(allCheck, "click", function () {
                if (radioValueEles && radioValueEles.length > 0) {
                    for (var _r = 0; _r < radioValueEles.length; _r++) {
                        if (radioValueEles.hasOwnProperty(_r)) {
                            radioValueEles[_r].checked = $(this).is(":checked");
                        }
                    }
                }
            });
            //点击单选按钮时,
            $(document).delegate(radioChecks, "click", function () {
                $(allCheck)[0].checked = $(radioChecks + ":checked").length == $(radioChecks).length;
            });
        },
        /**
         * 反选与单选事件触发,可选择是否绑定全选按钮
         * @param inverseCheck 全选的选择器
         * @param radioChecks 单选checkbox的选择器
         * @param allChecks 反选的选择器
         */
        selectInverse: function (inverseCheck, radioChecks, allCheck) {
            //筛选单选按钮组
            var radioValueEles = $(radioChecks);
            $(document).delegate(inverseCheck, "click", function () {
                var allChecked = true;
                //点击反选时,同组按钮被反向选择
                if (radioValueEles && radioValueEles.length > 0) {
                    for (var _r = 0; _r < radioValueEles.length; _r++) {
                        if (radioValueEles.hasOwnProperty(_r)) {
                            radioValueEles[_r].checked = !radioValueEles[_r].checked;
                            allChecked &= radioValueEles[_r].checked;
                        }
                    }
                }
                //若有全选的触发,则检测全选按钮是否选中
                if (allCheck) {
                    $(allCheck)[0].checked = allChecked;
                }
            });
        }
    }
})(jQuery, document);
 类似资料: