www.gusucode.com > 数据库版JSP树形菜单实例源码程序 > 数据库版JSP树形菜单实例/java动态树形菜单/java动态树形菜单/MenuDemo/WebRoot/js/jquery.ztree.excheck-3.0.min.js

    /*
 * JQuery zTree excheck 3.0
 * http://code.google.com/p/jquerytree/
 *
 * Copyright (c) 2010 Hunter.z (baby666.cn)
 *
 * Licensed same as jquery - MIT License
 * http://www.opensource.org/licenses/mit-license.php
 *
 * email: hunter.z@263.net
 * Date: 2012-01-10
 */
(function(h){var p,q,r,o={event:{CHECK:"ztree_check"},id:{CHECK:"_check"},checkbox:{STYLE:"checkbox",DEFAULT:"chk",DISABLED:"disable",FALSE:"false",TRUE:"true",FULL:"full",PART:"part",FOCUS:"focus"},radio:{STYLE:"radio",TYPE_ALL:"all",TYPE_LEVEL:"level"}},t={check:{enable:!1,autoCheckTrigger:!1,chkStyle:o.checkbox.STYLE,nocheckInherit:!1,radioType:o.radio.TYPE_LEVEL,chkboxType:{Y:"ps",N:"ps"}},data:{key:{checked:"checked"}},callback:{beforeCheck:null,onCheck:null}};p=function(c,a){if(a.chkDisabled===
!0)return!1;var b=g.getSetting(c.data.treeId),d=b.data.key.checked;if(n.apply(b.callback.beforeCheck,[b.treeId,a],!0)==!1)return!0;a[d]=!a[d];e.checkNodeRelation(b,a);d=h("#"+a.tId+j.id.CHECK);e.setChkClass(b,d,a);e.repairParentChkClassWithSelf(b,a);b.treeObj.trigger(j.event.CHECK,[b.treeId,a]);return!0};q=function(c,a){if(a.chkDisabled===!0)return!1;var b=g.getSetting(c.data.treeId),d=h("#"+a.tId+j.id.CHECK);a.check_Focus=!0;e.setChkClass(b,d,a);return!0};r=function(c,a){if(a.chkDisabled===!0)return!1;
var b=g.getSetting(c.data.treeId),d=h("#"+a.tId+j.id.CHECK);a.check_Focus=!1;e.setChkClass(b,d,a);return!0};h.extend(!0,h.fn.zTree.consts,o);h.extend(!0,h.fn.zTree._z,{tools:{},view:{checkNodeRelation:function(c,a){var b,d,f,k=c.data.key.children,l=c.data.key.checked;b=j.radio;if(c.check.chkStyle==b.STYLE){var i=g.getRadioCheckedList(c);if(a[l])if(c.check.radioType==b.TYPE_ALL){for(d=i.length-1;d>=0;d--)b=i[d],b[l]=!1,i.splice(d,1),e.setChkClass(c,h("#"+b.tId+j.id.CHECK),b),b.parentTId!=a.parentTId&&
e.repairParentChkClassWithSelf(c,b);i.push(a)}else{i=a.parentTId?a.getParentNode():g.getRoot(c);for(d=0,f=i[k].length;d<f;d++)b=i[k][d],b[l]&&b!=a&&(b[l]=!1,e.setChkClass(c,h("#"+b.tId+j.id.CHECK),b))}else if(c.check.radioType==b.TYPE_ALL)for(d=0,f=i.length;d<f;d++)if(a==i[d]){i.splice(d,1);break}}else a[l]&&(!a[k]||a[k].length==0||c.check.chkboxType.Y.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a,!0),!a[l]&&(!a[k]||a[k].length==0||c.check.chkboxType.N.indexOf("s")>-1)&&e.setSonNodeCheckBox(c,a,!1),
a[l]&&c.check.chkboxType.Y.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!0),!a[l]&&c.check.chkboxType.N.indexOf("p")>-1&&e.setParentNodeCheckBox(c,a,!1)},makeChkClass:function(c,a){var b=c.data.key.checked,d=j.checkbox,f=j.radio,k="",k=a.chkDisabled===!0?d.DISABLED:a.halfCheck?d.PART:c.check.chkStyle==f.STYLE?a.check_Child_State<1?d.FULL:d.PART:a[b]?a.check_Child_State===2||a.check_Child_State===-1?d.FULL:d.PART:a.check_Child_State<1?d.FULL:d.PART,b=c.check.chkStyle+"_"+(a[b]?d.TRUE:d.FALSE)+"_"+
k,b=a.check_Focus&&a.chkDisabled!==!0?b+"_"+d.FOCUS:b;return d.DEFAULT+" "+b},repairAllChk:function(c,a){if(c.check.enable&&c.check.chkStyle===j.checkbox.STYLE)for(var b=c.data.key.checked,d=c.data.key.children,f=g.getRoot(c),k=0,l=f[d].length;k<l;k++){var i=f[d][k];i.nocheck!==!0&&(i[b]=a);e.setSonNodeCheckBox(c,i,a)}},repairChkClass:function(c,a){if(a){g.makeChkFlag(c,a);var b=h("#"+a.tId+j.id.CHECK);e.setChkClass(c,b,a)}},repairParentChkClass:function(c,a){if(a&&a.parentTId){var b=a.getParentNode();
e.repairChkClass(c,b);e.repairParentChkClass(c,b)}},repairParentChkClassWithSelf:function(c,a){if(a){var b=c.data.key.children;a[b]&&a[b].length>0?e.repairParentChkClass(c,a[b][0]):e.repairParentChkClass(c,a)}},repairSonChkDisabled:function(c,a,b){if(a){var d=c.data.key.children;if(a.chkDisabled!=b)a.chkDisabled=b,a.nocheck!==!0&&e.repairChkClass(c,a);if(a[d])for(var f=0,k=a[d].length;f<k;f++)e.repairSonChkDisabled(c,a[d][f],b)}},repairParentChkDisabled:function(c,a,b){if(a){if(a.chkDisabled!=b)a.chkDisabled=
b,a.nocheck!==!0&&e.repairChkClass(c,a);e.repairParentChkDisabled(c,a.getParentNode(),b)}},setChkClass:function(c,a,b){a&&(b.nocheck===!0?a.hide():a.show(),a.removeClass(),a.addClass(e.makeChkClass(c,b)))},setParentNodeCheckBox:function(c,a,b,d){var f=c.data.key.children,k=c.data.key.checked,l=h("#"+a.tId+j.id.CHECK);d||(d=a);g.makeChkFlag(c,a);a.nocheck!==!0&&a.chkDisabled!==!0&&(a[k]=b,e.setChkClass(c,l,a),c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&c.treeObj.trigger(j.event.CHECK,[c.treeId,
a]));if(a.parentTId){l=!0;if(!b)for(var f=a.getParentNode()[f],i=0,m=f.length;i<m;i++)if(f[i].nocheck!==!0&&f[i][k]||f[i].nocheck===!0&&f[i].check_Child_State>0){l=!1;break}l&&e.setParentNodeCheckBox(c,a.getParentNode(),b,d)}},setSonNodeCheckBox:function(c,a,b,d){if(a){var f=c.data.key.children,k=c.data.key.checked,l=h("#"+a.tId+j.id.CHECK);d||(d=a);var i=!1;if(a[f])for(var m=0,n=a[f].length;m<n&&a.chkDisabled!==!0;m++){var o=a[f][m];e.setSonNodeCheckBox(c,o,b,d);o.chkDisabled===!0&&(i=!0)}if(a!=
g.getRoot(c)&&a.chkDisabled!==!0){i&&a.nocheck!==!0&&g.makeChkFlag(c,a);if(a.nocheck!==!0){if(a[k]=b,!i)a.check_Child_State=a[f]&&a[f].length>0?b?2:0:-1}else a.check_Child_State=-1;e.setChkClass(c,l,a);c.check.autoCheckTrigger&&a!=d&&a.nocheck!==!0&&c.treeObj.trigger(j.event.CHECK,[c.treeId,a])}}}},event:{},data:{getRadioCheckedList:function(c){for(var a=g.getRoot(c).radioCheckedList,b=0,d=a.length;b<d;b++)g.getNodeCache(c,a[b].tId)||(a.splice(b,1),b--,d--);return a},getCheckStatus:function(c,a){if(!c.check.enable||
a.nocheck)return null;var b=c.data.key.checked;return{checked:a[b],half:a.halfCheck?a.halfCheck:c.check.chkStyle==j.radio.STYLE?a.check_Child_State===2:a[b]?a.check_Child_State>-1&&a.check_Child_State<2:a.check_Child_State>0}},getTreeCheckedNodes:function(c,a,b,d){if(!a)return[];for(var f=c.data.key.children,k=c.data.key.checked,d=!d?[]:d,e=0,i=a.length;e<i;e++)a[e].nocheck!==!0&&a[e][k]==b&&d.push(a[e]),g.getTreeCheckedNodes(c,a[e][f],b,d);return d},getTreeChangeCheckedNodes:function(c,a,b){if(!a)return[];
for(var d=c.data.key.children,f=c.data.key.checked,b=!b?[]:b,k=0,e=a.length;k<e;k++)a[k].nocheck!==!0&&a[k][f]!=a[k].checkedOld&&b.push(a[k]),g.getTreeChangeCheckedNodes(c,a[k][d],b);return b},makeChkFlag:function(c,a){if(a){var b=c.data.key.children,d=c.data.key.checked,f=-1;if(a[b])for(var e=!1,g=0,i=a[b].length;g<i;g++){var m=a[b][g],h=-1;if(c.check.chkStyle==j.radio.STYLE)if(h=m.nocheck===!0?m.check_Child_State:m.halfCheck===!0?2:m.nocheck!==!0&&m[d]?2:m.check_Child_State>0?2:0,h==2){f=2;break}else h==
0&&(f=0);else if(c.check.chkStyle==j.checkbox.STYLE){h=m.nocheck===!0?m.check_Child_State:m.halfCheck===!0?1:m.nocheck!==!0&&m[d]?m.check_Child_State===-1||m.check_Child_State===2?2:1:m.check_Child_State>0?1:0;if(h===1){f=1;break}else if(h===2&&e&&h!==f){f=1;break}else if(f===2&&h>-1&&h<2){f=1;break}else h>-1&&(f=h);e||(e=m.nocheck!==!0)}}a.check_Child_State=f}}}});var o=h.fn.zTree,n=o._z.tools,j=o.consts,e=o._z.view,g=o._z.data;g.exSetting(t);g.addInitBind(function(c){var a=c.treeObj,b=j.event;a.unbind(b.CHECK);
a.bind(b.CHECK,function(a,b,e){n.apply(c.callback.onCheck,[a,b,e])})});g.addInitCache(function(){});g.addInitNode(function(c,a,b,d,f,e){if(b){a=c.data.key.checked;typeof b[a]=="string"&&(b[a]=n.eqs(b[a],"true"));b[a]=!!b[a];b.checkedOld=b[a];b.nocheck=!!b.nocheck||c.check.nocheckInherit&&d&&!!d.nocheck;b.chkDisabled=!!b.chkDisabled||d&&!!d.chkDisabled;if(typeof b.halfCheck=="string")b.halfCheck=n.eqs(b.halfCheck,"true");b.halfCheck=!!b.halfCheck;b.check_Child_State=-1;b.check_Focus=!1;b.getCheckStatus=
function(){return g.getCheckStatus(c,b)};e&&g.makeChkFlag(c,d)}});g.addInitProxy(function(c){var a=c.target,b=g.getSetting(c.data.treeId),d="",f=null,e="",h=null;if(n.eqs(c.type,"mouseover")){if(b.check.enable&&n.eqs(a.tagName,"button")&&a.getAttribute("treeNode"+j.id.CHECK)!==null)d=a.parentNode.id,e="mouseoverCheck"}else if(n.eqs(c.type,"mouseout")){if(b.check.enable&&n.eqs(a.tagName,"button")&&a.getAttribute("treeNode"+j.id.CHECK)!==null)d=a.parentNode.id,e="mouseoutCheck"}else if(n.eqs(c.type,
"click")&&b.check.enable&&n.eqs(a.tagName,"button")&&a.getAttribute("treeNode"+j.id.CHECK)!==null)d=a.parentNode.id,e="checkNode";if(d.length>0)switch(f=g.getNodeCache(b,d),e){case "checkNode":h=p;break;case "mouseoverCheck":h=q;break;case "mouseoutCheck":h=r}return{stop:!1,node:f,nodeEventType:e,nodeEventCallback:h,treeEventType:"",treeEventCallback:null}});g.addInitRoot(function(c){g.getRoot(c).radioCheckedList=[]});g.addBeforeA(function(c,a,b){var d=c.data.key.checked;c.check.enable&&(g.makeChkFlag(c,
a),c.check.chkStyle==j.radio.STYLE&&c.check.radioType==j.radio.TYPE_ALL&&a[d]&&g.getRoot(c).radioCheckedList.push(a),b.push("<button type='button' ID='",a.tId,j.id.CHECK,"' class='",e.makeChkClass(c,a),"' treeNode",j.id.CHECK," onfocus='this.blur();' ",a.nocheck===!0?"style='display:none;'":"","></button>"))});g.addZTreeTools(function(c,a){a.checkNode=function(a,b,g,l){var i=this.setting.data.key.checked;if(a.chkDisabled!==!0&&(b!==!0&&b!==!1&&(b=!a[i]),l=!!l,(a[i]!==b||g)&&!(l&&n.apply(this.setting.callback.beforeCheck,
[this.setting.treeId,a],!0)==!1)&&n.uCanDo(this.setting)&&this.setting.check.enable&&a.nocheck!==!0))a[i]=b,b=h("#"+a.tId+j.id.CHECK),(g||this.setting.check.chkStyle===j.radio.STYLE)&&e.checkNodeRelation(this.setting,a),e.setChkClass(this.setting,b,a),e.repairParentChkClassWithSelf(this.setting,a),l&&c.treeObj.trigger(j.event.CHECK,[c.treeId,a])};a.checkAllNodes=function(a){e.repairAllChk(this.setting,!!a)};a.getCheckedNodes=function(a){var b=this.setting.data.key.children;return g.getTreeCheckedNodes(this.setting,
g.getRoot(c)[b],a!==!1)};a.getChangeCheckedNodes=function(){var a=this.setting.data.key.children;return g.getTreeChangeCheckedNodes(this.setting,g.getRoot(c)[a])};a.setChkDisabled=function(a,b){b=!!b;e.repairSonChkDisabled(this.setting,a,b);b||e.repairParentChkDisabled(this.setting,a,b)};var b=a.updateNode;a.updateNode=function(c,f){b&&b.apply(a,arguments);if(c&&this.setting.check.enable&&h("#"+c.tId).get(0)&&n.uCanDo(this.setting)){var g=h("#"+c.tId+j.id.CHECK);(f==!0||this.setting.check.chkStyle===
j.radio.STYLE)&&e.checkNodeRelation(this.setting,c);e.setChkClass(this.setting,g,c);e.repairParentChkClassWithSelf(this.setting,c)}}});var s=e.createNodes;e.createNodes=function(c,a,b,d){s&&s.apply(e,arguments);b&&e.repairParentChkClassWithSelf(c,d)}})(jQuery);