自制jQuery 复选框全选与反选插件

(function ($) {
    //复选框全选
    $.fn.checkAll = function (options) {
        var defaults = {
                chName:"checkName",     //复选框name属性
                callBack:null          //回调函数
            },
            $obj = $(this),             //引用对象
            $items = $("input:checkbox[name=" + options.chName + "]"),      //所有name匹配的复选框
            checkedItem = 0;            //选中的复选框个数
        options = $.extend(defaults, options);
        //链式调用 
        return this.each(function(){
            $items.click(function () {
                //如果选中总数等于总数
                //全选打勾,label文字变成“全不选”
                //否则,不打勾
                if ($items.length === $items.filter(":checked").length) {
                    $obj.prop("checked", true);
                    $obj.next("label") && $obj.next("label").text("全不选");
                } else {
                    $obj.prop("checked", false);
                    $obj.next("label") && $obj.next("label").text("全 选");
                }
                //执行回调函数
                if (typeof options.callBack === "function") {
                    options.callBack();
                }
            });
            $obj.click(function () {
                //判断该框的状态
                //等于就取消所有选中,label文字变成“全选”
                //否则,选中所有
                if (this.checked) {
                    $items.prop("checked", true);
                    $obj.next("label") && $obj.next("label").text("全不选") ;
                } else {
                    $items.prop("checked", false);
                    $obj.next("label") && $obj.next("label").text("全选");
                }
                if (typeof options.callBack === "function") {
                    options.callBack();
                }
            });
        });
 
    };
})(jQuery);
posted @   LukeLin  阅读(239)  评论(0)    收藏  举报
编辑推荐:
· Hangfire Redis 实现秒级定时任务,使用 CQRS 实现动态执行代码
· Android编译时动态插入代码原理与实践
· 解锁.NET 9性能优化黑科技:从内存管理到Web性能的最全指南
· 通过一个DEMO理解MCP(模型上下文协议)的生命周期
· MySQL下200GB大表备份,利用传输表空间解决停服发版表备份问题
阅读排行:
· 工良出品 | 长文讲解 MCP 和案例实战
· 多年后再做Web开发,AI帮大忙
· 国产的 Java Solon v3.2.0 发布(央企信创的优选)
· centos停服,迁移centos7.3系统到新搭建的openEuler
· 记一次 .NET某旅行社酒店管理系统 卡死分析
点击右上角即可分享
微信分享提示