[导入][原创]级联checkbox,自用权限管理模块,需jQuery
使用方法:
cascade(checkbox的name)
全选checkbox的id为name0
子checkbox的id为name0[[父id_][父id_]...]id
cascade = function(checkboxName) {
$(":checkbox[name='" + checkboxName + "']").click(function() {
cascadeCheck(this.id);
});
};
cascadeCheck = function(nElementID) {
var isChecked = $('#' + nElementID).attr('checked');
var sParentId = nElementID.substr(0, nElementID.lastIndexOf('_')); //父节点
$(":checkbox[id^='" + nElementID + "_']").attr('checked', isChecked); //全选所有子节点
if (isChecked) {
bChecked = true;
$(":checkbox[name='" + $('#' + nElementID).attr('name') + "']").filter(function() {
return nElementID.indexOf(this.id + '_') === 0;
}).attr('checked', true); //遍历兄弟节点
} else {
bChecked = $(":checkbox[id^='" + sParentId + "_']").filter(function() {
return this.id.substring(sParentId.length + 1).indexOf('_') === -1 && this.checked === true;
}).length != 0; //遍历至根节点
}
if (!isChecked && !bChecked && sParentId != '') {
$('#' + sParentId).attr('checked', false);
cascadeCheck(sParentId);
}
}
文章来源:http://Jorkin.Reallydo.Com/default.asp?id=566