bin.shen
2016-12-05 a4c9331bbfe3e8765ccdc1c54cc6931bac49cc82
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
/**
 * @author ZhangHuihua@msn.com
 */
(function($){
    $.fn.extend({
        
        checkboxCtrl: function(parent){
            return this.each(function(){
                var $trigger = $(this);
                $trigger.click(function(){
                    var group = $trigger.attr("group");
                    if ($trigger.is(":checkbox")) {
                        var type = $trigger.is(":checked") ? "all" : "none";
                        if (group) $.checkbox.select(group, type, parent);
                    } else {
                        if (group) $.checkbox.select(group, $trigger.attr("selectType") || "all", parent);
                    }
                    
                });
            });
        }
    });
    
    $.checkbox = {
        selectAll: function(_name, _parent){
            this.select(_name, "all", _parent);
        },
        unSelectAll: function(_name, _parent){
            this.select(_name, "none", _parent);
        },
        selectInvert: function(_name, _parent){
            this.select(_name, "invert", _parent);
        },
        select: function(_name, _type, _parent){
            $parent = $(_parent || document);
            $checkboxLi = $parent.find(":checkbox[name='"+_name+"']");
            switch(_type){
                case "invert":
                    $checkboxLi.each(function(){
                        $checkbox = $(this);
                        $checkbox.attr('checked', !$checkbox.is(":checked"));
                    });
                    break;
                case "none":
                    $checkboxLi.attr('checked', false);
                    break;
                default:
                    $checkboxLi.attr('checked', true);
                    break;
            }
        }
    };
})(jQuery);