在使用jqxtree的过程中,有一种情况需要实现,即当部分子菜单选中时,父级菜单是变成黑框,只有全选子菜单才是对勾的选中状态。
那么问题来了,那就是怎么取得黑框的父菜单的变量值?
默认状态下,只有打钩的多选框,才能取到变量值,而这种黑框的,取不到,只能自己增加相应的方法。
我的方法是增加一个取得所有有子菜单的方法,该方法返回菜单树里所有的有子菜单的菜单项,方法如下:
getExpandItems: function() { var b = new Array(); var c = this; a.each(c.items, function() { var d = this; if (d.isExpanded) { b.push(d) } }); return b }
有了这个方法,就能得到所有的有子菜单的父菜单项了,那么怎么得到当前为黑框的父菜单项呢?
其实很简单,只需遍历这个所有父菜单项列表,判断该菜单项的checked为null,则就是黑框的菜单项。代码如下:
for(var i=0;i<expandItems.length;i++){ if (expandItems[i].checked == null){ parMenuId = expandItems[i].value; } }
这样就实现了选中子菜单的同时,还能够得到父菜单的变量值。