最近项目要在同一个页面加载 多个ztree做不同分类的选择 看了看官方文档,决定从select_checkbox_menu入手
触发 跟值返回
ztree初始化成功后的treeID 是容纳数据的容器的id 比如下面的edu_type
<a href="javascript:;" id="input_format_list_a" onclick="showMenu('format_list');" >资源格式</a> <input id="input_format_list" type="hidden" name="category['format_list']" readonly value="" style="width:120px;" />
ztree 初始化的id
<div id="menuContent" style="display:none; position: absolute;">
<ul id="edu_type" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
<ul id="learner_list" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
<ul id="grade_list" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
<ul id="curriculum_list" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
<ul id="subject_list" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
<ul id="textbook_list" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
<ul id="topic_list" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
<ul id="type_list" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
<ul id="format_list" class="ztree" style="margin-top:0; width:280px; height: 300px;"></ul>
</div>
js代码:
var setting = {
check: {
enable: true,
chkboxType: {"Y":"ps", "N":"ps"}
},
view: {
dblClickExpand: false
},
data: {
simpleData: {
enable: true
}
},
callback: {
beforeClick: beforeClick,
onCheck: onCheck
}
};
//json数据
var edu_type_list=<?php echo $edu_type_list?>;
var learner_list=<?php echo $learner_list?>;
var grade_list=<?php echo $grade_list?>;
var curriculum_list=<?php echo $curriculum_list?>;
var subject_list=<?php echo $subject_list?>;
var textbook_list=<?php echo $textbook_list?>;
var topic_list=<?php echo $topic_list?>;
var type_list=<?php echo $type_list?>;
var format_list=<?php echo $format_list?>;
function beforeClick(treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj(treeId);
zTree.checkNode(treeNode, !treeNode.checked, null, true);
return false;
}
function onCheck(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj(treeId),
nodes = zTree.getCheckedNodes(true),
v = "";
//返回checkbox值
for (var i=0, l=nodes.length; i<l; i++) {
if(!nodes[i].isParent){
v += nodes[i].name + ",";//多值用,隔开
}
}
if (v.length > 0 ) v = v.substring(0, v.length-1);
var cityObj = $("#input_"+treeId);
cityObj.attr("value", v);
}
function showMenu(v) {
var cityObj = $("#input_"+v+"_a");
var cityOffset = $("#input_"+v+"_a").offset();
$("#menuContent ul" ).hide();
$("#"+v).show();
$("#menuContent").css({left:cityOffset.left + "px", top:cityOffset.top + cityObj.outerHeight() + "px"}).slideDown("fast");
$("body").bind("mousedown", onBodyDown);
}
function hideMenu() {
$("#menuContent").fadeOut("fast");
$("body").unbind("mousedown", onBodyDown);
}
function onBodyDown(event) {
if (!(event.target.id == "menuBtn" || event.target.id == "citySel" || event.target.id == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
hideMenu();
}
}
$(document).ready(function(){
//初始化ztree
$.fn.zTree.init($("#edu_type"), setting, edu_type_list);
$.fn.zTree.init($("#learner_list"), setting, learner_list);
$.fn.zTree.init($("#grade_list"), setting, grade_list);
$.fn.zTree.init($("#curriculum_list"), setting, curriculum_list);
$.fn.zTree.init($("#subject_list"), setting, subject_list);
$.fn.zTree.init($("#textbook_list"), setting, textbook_list);
$.fn.zTree.init($("#topic_list"), setting, topic_list);
$.fn.zTree.init($("#type_list"), setting, type_list);
$.fn.zTree.init($("#format_list"), setting, format_list);
});
分享到:
相关推荐
zTree基于jQuery,能够兼容多种浏览器,并且允许在同一页面上创建多个独立的树实例。它支持JSON数据格式,既可以静态加载数据,也能通过Ajax异步加载。此外,zTree还提供了丰富的事件处理,包括节点的移动、编辑和...
- **多实例支持**:在同一页面中可以同时生成多个 Tree 实例。 ##### 1.2 zTree 文件组成 zTree 包含多个组件,以满足不同的功能需求: - **metroStyle 文件夹**:包含 zTree 的 Metro 风格样式相关文件,如图片...
9. **多实例支持**:在同一页面内可生成多个独立的Tree实例。 10. **简单配置**:通过简单的参数设定,实现复杂功能。 **zTree的优势:** zTree的作者积极维护,及时回应用户问题,使得学习和使用过程更为顺畅。...
2. **多面板操作**:用户可以在同一窗口内开启多个面板,方便进行文件的比较、复制、移动等操作。 3. **命令行支持**:ZTree内置了丰富的命令行操作,允许用户通过快捷键或菜单执行各种文件操作,提高操作效率。 4. ...
10. **多实例支持**:在同一页面内可以创建多个独立的树形控件实例。 11. **简单配置,复杂功能**:通过简单的参数配置,实现多样化的功能需求。 **zTree文件介绍:** zTree的核心文件包括了不同功能的JS库和样式...
- **多实例**: 可在同一页面中生成多个 Tree 实例。 - **数据支持**: 支持 JSON 数据格式。 - **生成方式**: 支持静态生成和 AJAX 异步加载。 - **事件响应**: 提供多种事件监听机制。 - **节点操作**: 支持节点的...
- **树(Tree)**: 由多个节点组成的层级结构,可以通过API进行操作和管理。 2. **API详解** - **初始化**: 使用`zTree`方法创建树形结构,需要提供配置项,如节点数据、样式、事件监听等。 - **节点操作** - `...
为了解决这个问题,要确保数据格式正确,并理解zTree如何递归地展示树结构。 zTree中的`isParent`属性至关重要,它决定了节点的行为。当`isParent`为`true`时,节点被视为父节点,表现为可点击并带有展开/折叠图标...
总之,"文件上传及数据同步工具demo"是实现从本地到云端的数据交换的核心组件,它结合了前端的文件操作、网络通信和后端的数据管理等多个技术领域,为用户提供了一种高效、可靠的文件管理和数据一致性保证。
DocSys文件管理系统设计1 DocSys是一个基于Web的文件管理系统,旨在提供类似本地目录操作的用户体验,如拖放、新建、...其设计考虑了多用户协作、版本控制、文件权限管理等多个重要方面,确保了系统的稳定性和灵活性。