/** * @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);