jquery ztree实现下拉树形框使用到了json数据 - Web前端
作者:98wpeu发布时间:2026-10-03分类:网页前端技术浏览:2
导读:公司最近的项目需要用到树形下拉框,在网上找了挺多源码,最后还是采用了zTree来实现,因为代码的移植性比较高,而且数据的获取比较容易。废话不多说,直接上代码。index.JSp...
公司最近的项目需要用到树形下拉框,在网上找了挺多源码,最后还是采用了zTree来实现,因为代码的移植性比较高,而且数据的获取比较容易。废话不多说,直接上代码。
index.JSp
复制代码 代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://Java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="HTTP://java.sun.com/jsp/jstl/functions" PRefix="fn"%>
<html>
<head>
<link rel="StyleSheet" href="<c:urlvalue='/js/ztree/CSS/demo.css'/>" type="text/css"></link>
<link rel="stylesheet" href="<c:url value='/js/ztree/css/zTreeStyle/zTreeStyle.css'/>" type="text/css"></link>
<script type="text/javascript" src="<c:url value='/js/ztree/js/JQuery-1.4.4.min.js'/>"></script>
<script type="text/JavaScript" src="<c:url value='/js/ztree/js/jQuery.ztree.core-3.5.js'/>"></script>
<SCRIPT type="text/Javascript">
<!--
var setting = {
view: {
dblClickExpand: false
},
data: {
simpleData: {
enable: true
}
},
callback: {
beforeClick: beforeClick,
onClick: onClick
}
};
//json数据源,也可以从后台读取JSON字符串,并转换成JSON对象,如下所示
//var strnodes = '${jsonlist}';
//var zNodes = eval("("+strNodes+")"); //将json字符串转换成json对象数组,strNode一定要加"()",不然转不成功
var zNodes =[
{id:1, pId:0, name:"北京"},
{id:2, pId:0, name:"天津"},
{id:3, pId:0, name:"上海"},
{id:6, pId:0, name:"重庆"},
{id:4, pId:0, name:"河北省", open:true},
{id:41, pId:4, name:"石家庄"},
{id:42, pId:4, name:"保定"},
{id:43, pId:4, name:"邯郸"},
{id:44, pId:4, name:"承德"},
{id:5, pId:0, name:"广东省", open:true},
{id:51, pId:5, name:"广州"},
{id:52, pId:5, name:"深圳"},
{id:53, pId:5, name:"东莞"},
{id:54, pId:5, name:"佛山"},
{id:6, pId:0, name:"福建省", open:true},
{id:61, pId:6, name:"福州"},
{id:62, pId:6, name:"厦门"},
{id:63, pId:6, name:"泉州"},
{id:64, pId:6, name:"三明"}
];
function beforeClick(treeId, treeNode) {
var check = (treeNode && !treeNode.isparent);
if (!check) alert("只能选择城市...");
return check;
}
function onClick(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = zTree.getselectedNodes(),
v = "";
nodes.sort(function compare(a,b){return a.id-b.id;});
for (var i=0, l=nodes.length; i<l; i++) {
v += nodes[i].name + ",";
}
if (v.length > 0 ) v = v.substring(0, v.length-1);
var cityObj = $("#citySel");
cityObj.attr("value", v);
}
function showmenu() {
var cityObj = $("#citySel");
var cityOffset = $("#citySel").offset();
$("#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 == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
hideMenu();
}
}
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
});
//-->
</SCRIPT>
</head>
<body>
<div class="zTreeDemoBackground left">
<ul class="list">
<li class="title"> <span class="highlight_red">选择城市时,按下 Ctrl 或 Cmd 键可以进行多选</span></li>
<li class="title"> 城市:<input id="citySel" type="text" readonly value="" style="width:120px;"/>
<a id="menuBtn" href="#" onclick="showMenu(); return false;">选择</a></li>
</ul>
</div>
<div id="menuContent" class="menuContent" style="display:none; position: absolute;">
<ul id="treeDemo" class="ztree" style="margin-top:0; width:160px;"></ul>
</div>
</body>
</HTML>
spring后台
json数据类
复制代码 代码如下:
public class EqUIpTypeJson {
private String id;
private String pId;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPId() {
return pId;
}
public void setPId(String pId) {
this.pId = pId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
controller页面
复制代码 代码如下:
public modelAndVIEw List(httpservletRequest request, HTTPServletResponse response,Product prod) throws Exception {
map map=new HashMap();
List<EquipTypeJson> list = testservice.getAllEquipType();//数据库中获取源数据
JSONArray jsonarray = JSONArray.fromObject(list); //将list数据转为json对象
String json = jsonArray.toString(); //将json对象转为字符串
map.put("jsonList", json);
return new modelAndView("equip/List").addAllObjects(map);
}
index.JSp
复制代码 代码如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://Java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="HTTP://java.sun.com/jsp/jstl/functions" PRefix="fn"%>
<html>
<head>
<link rel="StyleSheet" href="<c:urlvalue='/js/ztree/CSS/demo.css'/>" type="text/css"></link>
<link rel="stylesheet" href="<c:url value='/js/ztree/css/zTreeStyle/zTreeStyle.css'/>" type="text/css"></link>
<script type="text/javascript" src="<c:url value='/js/ztree/js/JQuery-1.4.4.min.js'/>"></script>
<script type="text/JavaScript" src="<c:url value='/js/ztree/js/jQuery.ztree.core-3.5.js'/>"></script>
<SCRIPT type="text/Javascript">
<!--
var setting = {
view: {
dblClickExpand: false
},
data: {
simpleData: {
enable: true
}
},
callback: {
beforeClick: beforeClick,
onClick: onClick
}
};
//json数据源,也可以从后台读取JSON字符串,并转换成JSON对象,如下所示
//var strnodes = '${jsonlist}';
//var zNodes = eval("("+strNodes+")"); //将json字符串转换成json对象数组,strNode一定要加"()",不然转不成功
var zNodes =[
{id:1, pId:0, name:"北京"},
{id:2, pId:0, name:"天津"},
{id:3, pId:0, name:"上海"},
{id:6, pId:0, name:"重庆"},
{id:4, pId:0, name:"河北省", open:true},
{id:41, pId:4, name:"石家庄"},
{id:42, pId:4, name:"保定"},
{id:43, pId:4, name:"邯郸"},
{id:44, pId:4, name:"承德"},
{id:5, pId:0, name:"广东省", open:true},
{id:51, pId:5, name:"广州"},
{id:52, pId:5, name:"深圳"},
{id:53, pId:5, name:"东莞"},
{id:54, pId:5, name:"佛山"},
{id:6, pId:0, name:"福建省", open:true},
{id:61, pId:6, name:"福州"},
{id:62, pId:6, name:"厦门"},
{id:63, pId:6, name:"泉州"},
{id:64, pId:6, name:"三明"}
];
function beforeClick(treeId, treeNode) {
var check = (treeNode && !treeNode.isparent);
if (!check) alert("只能选择城市...");
return check;
}
function onClick(e, treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = zTree.getselectedNodes(),
v = "";
nodes.sort(function compare(a,b){return a.id-b.id;});
for (var i=0, l=nodes.length; i<l; i++) {
v += nodes[i].name + ",";
}
if (v.length > 0 ) v = v.substring(0, v.length-1);
var cityObj = $("#citySel");
cityObj.attr("value", v);
}
function showmenu() {
var cityObj = $("#citySel");
var cityOffset = $("#citySel").offset();
$("#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 == "menuContent" || $(event.target).parents("#menuContent").length>0)) {
hideMenu();
}
}
$(document).ready(function(){
$.fn.zTree.init($("#treeDemo"), setting, zNodes);
});
//-->
</SCRIPT>
</head>
<body>
<div class="zTreeDemoBackground left">
<ul class="list">
<li class="title"> <span class="highlight_red">选择城市时,按下 Ctrl 或 Cmd 键可以进行多选</span></li>
<li class="title"> 城市:<input id="citySel" type="text" readonly value="" style="width:120px;"/>
<a id="menuBtn" href="#" onclick="showMenu(); return false;">选择</a></li>
</ul>
</div>
<div id="menuContent" class="menuContent" style="display:none; position: absolute;">
<ul id="treeDemo" class="ztree" style="margin-top:0; width:160px;"></ul>
</div>
</body>
</HTML>
spring后台
json数据类
复制代码 代码如下:
public class EqUIpTypeJson {
private String id;
private String pId;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getPId() {
return pId;
}
public void setPId(String pId) {
this.pId = pId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
controller页面
复制代码 代码如下:
public modelAndVIEw List(httpservletRequest request, HTTPServletResponse response,Product prod) throws Exception {
map map=new HashMap();
List<EquipTypeJson> list = testservice.getAllEquipType();//数据库中获取源数据
JSONArray jsonarray = JSONArray.fromObject(list); //将list数据转为json对象
String json = jsonArray.toString(); //将json对象转为字符串
map.put("jsonList", json);
return new modelAndView("equip/List").addAllObjects(map);
}
相关推荐
- 图片放大镜jquery.jqzoom.js使用实例附放大镜图标 - Web前端
- 使用jquery animate创建平滑滚动效果(可以是到顶部、到底部或指定地方) - Web前端
- jquery处理json数据实例分析 - Web前端
- jquery实现select选中行、列合计示例 - Web前端
- 在jquery boxy中添加百度地图坐标拾取注意流程 - Web前端
- jquery新的绑定事件机制on方法的使用方法 - Web前端
- jQuery防止click双击多次提交及传递动态函数或多参数 - Web前端
- jQuery实现回车键(Enter)切换文本框焦点的代码实例 - Web前端
- 使用JS或jQuery模拟鼠标点击a标签事件代码 - Web前端
- jquery判断小数点两位和自动删除小数两位后的数字 - Web前端
- 网页前端技术排行
-
- 1[Web前端]用javascript实现默认图片替代未显示的图片 - Web前端
- 2分析Iconfont-阿里巴巴矢量常用图标库 - Web前端
- 3jQuery实例教程:制作网页中可折叠的面板 - Web前端
- 4【第六章】Foundation之按钮和下拉功能 - Web前端
- 5基于jquery的滚动条滚动固定div(附演示下载) - Web前端
- 6jQuery编写widget的一些技巧分享 - Web前端
- 7分享精心挑选的12款优秀jQuery Ajax分页插件和教程 - Web前端
- 8jQuery实现鼠标移到元素上动态提示消息框效果 - Web前端
- 9在Mac/PC上远程调试iPhone/iPad上的网页 - Web前端
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


