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