无限级联 下拉框的实现 ... 呜呜呜 __init_xu js 又增加了一个widget
2016-08-25 16:21
405 查看
<script> var json__categories = <?php echo $json__categories; ?> ; //log(json__categories); //查找分类 function findcg(id){ var cg = null , hadFind = false; xu.array.each(json__categories['refs'],function(item,index){ if (hadFind) return ; if (item.id == id) cg = item ; }); return cg ; } //改变分类 function chcg(o){ if (!xu.verify._obj(o)) return ; //首先取得选中的id,,再查该id下是否存在子节点 var cid = o.value;log(cid); if (!cid) { // 缺省值时清空节点尾部所有select $eo(o).removeAfterAll(); } //在json中定位该id所对应的节点 var categorie = findcg(cid);//log(categorie); if (!categorie) return ; //查当前节点的父节点,这个似乎不用考虑,每个节点只用管理其直接子节点 //查当前节点下是否存在子节点,存在'sons'说明有子节点,创建一个下拉框并追加到尾部 if (categorie['sons']){ //清空创建的子select对象 var subCategories = categorie['sons']; $new_slt = $eo.create('select'); $new_slt.on('change',function(){ // this <-> $new_slt chcg(this); }); add_opt($new_slt.ele,'选择子分类','',0); var start = 1;// 选项计数 xu.array.each(subCategories,function(item){ add_opt($new_slt.ele,item.name,item.id,start); start ++ ; }); $eo(o).removeAfterAll().insertAfter($new_slt.ele); }else { $eo(o).removeAfterAll(); } } function add_opt(slt_obj,opt_txt,opt_value,index){ slt_obj.options[index] = new Option(opt_txt,opt_value); } function clear_opts(slt_obj){ // 原有选项计数 var len = slt_obj.options.length; for (var i=0; i < len; i++) slt_obj.options[0] = null;// 移除当前选项 } xu.ready(function(){ //设置分类的项 -- 首先设置初值项,取第一级分类 (function(){ if (!xu.verify._obj(json__categories)) { chcg = function(){} ;return ; } var start = 1;// 选项计数 xu.array.each(json__categories['tree'],function(item){ add_opt($eo('article-categorie').ele,item.name,item.id,start); start ++ ; }); })(); }); </script>
今天没有时间 抽出来了,下周抽出来 ... 我我我我
相关文章推荐
- js+csss实现的一个带复选框的下拉框
- 基于外部一个省市联动js框架,实现初始化特定的地址级联
- JS实现点击按钮自动增加一个单元格的方法
- Dynamics CRM 2015 通过JS控制下拉框实现国家省市级联
- JS实现点击按钮自动增加一个单元格
- js实现双向链表, 双向链表需要增加一个previous属性
- 在js中实现对数字每个3个增加一个逗号
- js+csss实现的一个带复选框的下拉框
- JS实现点击按钮自动增加一个单元格的方法
- 用JS实现的完美无限级联下拉菜单
- 一个JS实现表格可排序
- 利用js实现table增加一行
- [JS]实现动态增加框架!未完成
- 通过js脚本复制网页上的一个表格的不错实现方法
- 一个基于WEB的js时间控件的实现
- 给select下拉框增加option发现的问题,以及js怎么设置中断
- [JS]实现动态增加框架!未完成
- 用js实现的一个Flash滚动轮换显示图片代码生成器
- 表格行高亮显示实现为一个 js 类
- javascript(js),XML,DOM实现无限级下拉菜单,不会被任何标签或元素遮住