// 為所有的選擇框綁定點擊事件
$(":checkbox").click(function(){
// 先取出當前權限的level值是多少
var cur_level = $(this).attr("level");
// 判斷是選中還是取消
if($(this).attr("checked"))
{
var tmplevel = cur_level; // 給一個臨時的變量后面要進行減操作
// 先取出這個復選框所有前面的復選框
var allprev = $(this).prevAll(":checkbox");
// 循環每一個前面的復選框判斷是不是上級的
$(allprev).each(function(k,v){
// 判斷是不是上級的權限
if($(v).attr("level") < tmplevel)
{
tmplevel--; // 再向上提一級
$(v).attr("checked", "checked");
}
});
// 所有子權限也選中
// 先取出這個復選框所有前面的復選框
var allprev = $(this).nextAll(":checkbox");
// 循環每一個前面的復選框判斷是不是上級的
$(allprev).each(function(k,v){
// 判斷是不是上級的權限
if($(v).attr("level") > cur_level)
$(v).attr("checked", "checked");
else
return false; // 遇到一個平級的權限就停止循環后面的不用再判斷了
});
}
else
{
// 先取出這個復選框所有前面的復選框
var allprev = $(this).nextAll(":checkbox");
// 循環每一個前面的復選框判斷是不是上級的
$(allprev).each(function(k,v){
// 判斷是不是上級的權限
if($(v).attr("level") > cur_level)
$(v).removeAttr("checked");
else
return false; // 遇到一個平級的權限就停止循環后面的不用再判斷了
});
}
});