`
234390216
  • 浏览: 10233099 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
博客专栏
A5ee55b9-a463-3d09-9c78-0c0cf33198cd
Oracle基础
浏览量:462628
Ad26f909-6440-35a9-b4e9-9aea825bd38e
springMVC介绍
浏览量:1775523
Ce363057-ae4d-3ee1-bb46-e7b51a722a4b
Mybatis简介
浏览量:1398371
Bdeb91ad-cf8a-3fe9-942a-3710073b4000
Spring整合JMS
浏览量:395023
5cbbde67-7cd5-313c-95c2-4185389601e7
Ehcache简介
浏览量:679990
Cc1c0708-ccc2-3d20-ba47-d40e04440682
Cas简介
浏览量:530894
51592fc3-854c-34f4-9eff-cb82d993ab3a
Spring Securi...
浏览量:1183955
23e1c30e-ef8c-3702-aa3c-e83277ffca91
Spring基础知识
浏览量:467938
4af1c81c-eb9d-365f-b759-07685a32156e
Spring Aop介绍
浏览量:151402
2f926891-9e7a-3ce2-a074-3acb2aaf2584
JAXB简介
浏览量:68154
社区版块
存档分类
最新评论

dTree无限级目录树和JQuery同步ajax请求

阅读更多

以前都是用JQuery对树的支持来实现目录树的,近来闲来无事就弄了下dTree,感觉其无限级目录还是挺好的,而且它的使用也比较方便,基本上就是先把要用的js文件即dtree.js和css文件dtree.css引入,另外就是它默认的图片,当然这些图片都是可以自己指定的,它的css样式也可以自己改变的!

 

关于dTree就先谈谈它的node,dTree的node的构造方法可以指定下列参数,

			id //唯一标识,数字型
			pid//父节点的id,如果是根结点那就只能是-1,一般来讲只有一个最顶层的根结点 
			name//结点的名字,字符串类型,在页面上显示出来的标签. 
			url//字符串类型,表示当点击该叶子结点的时候访问哪个URL. 
			title//title,字符串类型,鼠标进入时显示的字符串. 
			target//字符串类型,超链接的目标位置. 
			icon //字符串类型,表示该结点图标的图片路径,不指定则使用默认的
			iconOpen//结点打开时候的图片路径,不指定则使用默认的 
			open//boolean类型,表示初始状态是否是打开的 

 如:

mytree.add(1, 0, 'My node', 'node.html', 'node title', 'mainframe', 'img/musicfolder.gif');


 

 

有了node以后就是构建树了

//引入了dtree.js后,就可以使用new dTree()了
myTree = new dTree();//这样就新建了一个dTree了,
//新建了dTree以后就是把刚建的node给添进去了,
mytree.add(1, 0, 'My node', 'node.html', 'node title', 'mainframe', 'img/musicfolder.gif');

 

在最后还可以指定一些配置参数:

 

			target//所有结点的目标 
			folderLinks//非叶子结点是否也是可以链接的,默认是true 
			useSelection//结点是否可以被选择,默认true. 
			useCookies//是否使用cookies来记录当前树的状态,默认是true 
			useLines//是否用线来画树,默认是true 
			useIcons//是否使用图标来构建树,默认是true 
			useStatusText//是否在状态栏显示结点的名字,而不是在URL的位置显示,默认是false
			closeSameLevel//是否同时只能有一个文件夹处于打开状态,默认为false,当为true的时候关闭所有的文件夹和打开所有的文件夹将不会起作用
			inOrder//是否先添加父结点再添加子节点,  默认为false,为true可以加快加载速度
			
			//例如:
			mytree.config.target = "mytarget";

 

像这些结点的相关信息,我们一般都是要从后台来得到的,或者从数据库,或者从配置文件,如果加上复杂的权限控制就得每次都到后台取一次了,
  而从后台得到这些数据的话一般常用的是以ajax请求取得json格式的数据,然后在页面上就可以非常方便的使用了,但是使用ajax请求的时候
  就会有一个问题出现了,那就是一般的ajax请求都是异步的,这时候,页面不会等ajax的请求返回就已经往下面执行了,等ajax请求返回的时候
  页面已经不能再使用其返回的数据进行操作了,所以这个时候需要使用ajax的同步请求了!ajax的同步请求很简单只要在ajax的请求的时候加上一个
  区别于ajax请求类型的参数就行了,一般都是async,像JQuery的用法就是这样的:

$.ajax( {
				url : "module/geneMenu",
				async : false//同步,等这个请求完成后才继续往下执行,这样myTree才能使用返回来的数据
			});

 使用了ajax的同步请求以后,页面在解析到ajax请求的时候就会等ajax请求返回以后再继续往下面执行,这样就可以利用
  ajax的返回值来进行对dTree的node的操作了!

 

还有一个问题就是我们常常会利用Frame来将页面进行布局成左边是menu栏,而右边是主页面,上边是一些基本信息这样的结构
  这样我们就需要在点击menu栏的叶子结点时,在mainFrame里面显示请求返回后的内容,其实要实现这个要求挺简单的,只需要
  把node的target指定为mainFrame的name即可

 

下面是一段完整的代码:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>menu</title>

		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="this is my page">
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">

		<!--<link rel="stylesheet" type="text/css" href="./styles.css">-->
		<link rel="stylesheet" type="text/css" href="css/dtree.css">
		<style type="text/css">
			html,body {
				background:#afa;
			}
		</style>
		<script type="text/javascript" src="js/dtree.js"></script>
		<script type="text/javascript" src="js/jquery.js"></script>
	</head>

	<body>
		<div>
		<script type="text/javascript">
		
			myTree = new dTree('myTree');
			$.ajax( {
				url : "module/geneMenu",
				async : false,//同步,等这个请求完成后才继续往下执行,这样myTree才能使用返回来的数据
				dataType: "json",
				success: function(myData) {
					for ( var i = 0; i < myData.length; i++) {
						var obj = myData[i];
						//right是window.parent的一个frame的name
						myTree.add(obj.id, obj.parentId, obj.name, obj.url, obj.name, "right");
					}
					document.write(myTree);
				}
			});
			myTree.config.target = "right";//right是window.parent的一个frame的name
			myTree.config.useCookies = false;
			myTree.config.inOrder = true;
			
		</script>
		</div>
	</body>
</html>

 

 

1
3
分享到:
评论

相关推荐

    dTree 生成无限级树形菜单

    以上就是使用`dTree`生成无限级树形菜单的基本步骤。需要注意的是,实际应用中可能需要考虑性能优化,例如分页加载子节点,以防止一次性加载大量数据导致页面响应变慢。同时,为了增强用户体验,还可以添加搜索、...

    dTree 无限级树形菜单

    总结起来,dTree是一款强大的JavaScript树形菜单组件,它简化了无限级树的构建过程,提供了丰富的功能和高度的定制性。无论是初学者还是经验丰富的开发者,都能从中找到适合自己的解决方案,提升项目的开发效率。...

    js dtree无限级扩展的树形菜单.rar

    本文将深入探讨“js dtree无限级扩展的树形菜单”这一主题,这是一种基于JavaScript的树形菜单插件,适用于构建多层次、可扩展的导航系统。 首先,我们来了解“js dtree”的基本概念。js dtree 是一个JavaScript库...

    dtree+ajax异步加载树

    2. **异步加载树节点**:当用户展开一个节点时,使用Ajax发送请求到服务器,获取该节点的子节点数据,然后使用dtree提供的API将新数据插入到现有树中。 3. **优化策略**:通常,初始加载只展示顶级节点,其余节点按...

    Dtree目录树下载

    【DTree目录树下载】是针对前端开发人员的一款强大且美观的树形JavaScript代码库,主要用在构建具有层级结构的目录展示。DTree以其高效的功能和优雅的样式设计,深受开发者喜爱,常用于网站导航、文件管理器、组织...

    jsp-dtree-目录树解决树形结构问题

    ### jsp-dtree-目录树解决树形结构问题 #### 概述 JSP-dtree是一种基于JavaServer Pages (JSP)技术实现的目录树组件,用于解决网站或应用程序中的树形结构展示问题。该组件不仅可以帮助开发者快速构建出美观且功能...

    dtreeJQuery实例.动态生成树

    动态生成树】是一个基于jQuery库的动态树形菜单插件,它主要用于在网页中创建交互式的、可展开和折叠的层级结构。这种树状菜单在很多场景下都非常实用,比如网站导航、数据分类展示或者文件目录浏览等。本文将深入...

    jquery整合dtree 动态加载树形结构,提高效率

    jquery整合dtree 动态加载树形结构, 本人这段时间正巧要做一个省市县的树状结构图,公司之前用的dtree实现起来效率太低,半天打不开页面,于是考虑用jquery动态加载,通过网上查资料,学习别人的列子,现将本人所...

    dtree目录树代码

    "dtree目录树代码"是用于创建JavaScript实现的无限级目录菜单的代码库,适用于多种浏览器环境,包括Internet Explorer、Maxthon(一款基于IE内核的浏览器)和Firefox。这个代码库提供了在网页上构建可交互的多级目录...

    dtree+jquery动态生成树

    5. **数据加载**:当页面加载完毕或用户触发特定事件时,`dtree`会通过Ajax请求服务器端接口,获取菜单数据,并自动渲染成树形结构。 6. **交互处理**:根据需求添加事件监听器,比如点击节点时展开子节点、跳转...

    spring+struts2+hibernate+json+dtree+mysql实现的无限级联树(全)

    本项目"spring+struts2+hibernate+json+dtree+mysql实现的无限级联树(全)"是一个典型的企业级应用示例,它综合了前端与后端的多种技术,实现了数据的动态展示和交互。下面将详细解析该项目中的主要技术及其应用。 1...

    ajax,servlet动态加载dtree

    在本项目"ajax,servlet动态加载dtree"中,我们看到的是利用Ajax技术和Servlet实现dtree(一种树形菜单控件)的动态加载。这个项目可能是一个文件管理系统或者目录浏览应用,其中dtree用于展示文件或目录结构,而...

    jquery dtree 实例 动态实现无限树形菜单(增删改查)

    这个实例着重展示了如何利用jQuery dTree动态地构建一个无限层级的树形菜单,并实现基本的数据操作功能,包括添加、删除、修改和查询。下面我们将深入探讨这个主题。 首先,jQuery dTree是一个轻量级的插件,它基于...

    Dtree目录树

    总结来说,"Dtree目录树"是一个用于生成和操作目录树的框架,结合"jquery-treeview"插件,可以在Web环境中提供强大的目录视图和交互功能。理解和掌握这些技术,可以帮助开发者更高效地管理和展示文件系统结构,提升...

    Dtree+Jquery 资料

    文件名称 "jquerytree" 暗示压缩包里可能有一个名为“jquerytree”的文件或目录,里面可能包含了DTree和jQuery的相关代码、示例、文档等资源。通过研究这些文件,开发者可以深入理解并实践上述知识点。 总之,这个...

    ASP.NET AJAX 无限级 JS 树形菜单

    通过以上介绍,我们可以看到 ASP.NET AJAX 结合 JavaScript 可以非常灵活地实现复杂的前端功能,如本例中的无限级树形菜单。这种技术的应用不仅提高了用户体验,同时也让开发者能够更加专注于业务逻辑的实现。希望...

    dtree实现的树支持多选

    【dtree实现的树支持多选】是一种在网页交互中常用的数据展示和操作方式,尤其在数据层级结构复杂时,如文件系统、组织结构或菜单导航等场景。DTree(通常指的是JavaScript实现的树形控件)允许用户通过勾选节点来...

    dTree+jquery实现动态树形

    在dTree中集成jQuery,可以利用其强大的功能,例如使用$.getJSON或者$.ajax来异步加载树形结构的数据,使树形视图更加动态和响应式。 3. **动态树形结构** 动态树形结构是指树形视图中的节点可以在用户交互时进行...

    Dtree+Jquery动态生成树节点.

    标题提到的"Dtree+Jquery动态生成树节点"是指使用DTree插件结合jQuery库来创建可交互的、动态更新的树形结构数据展示。这篇博文链接指向的是张荣(zhangrong108)在ITEYE上的博客文章,虽然具体的描述是空的,但我们...

    dtree+jquery 动态实现无限树形菜单 (包括增删改查)

    dtree是一款基于jQuery的插件,它提供了丰富的API和灵活的配置选项,使得在网页上创建交互式树形菜单变得简单易行。 首先,我们来深入理解dtree的核心功能。dtree允许开发者通过JSON或者HTML结构来定义树形菜单的...

Global site tag (gtag.js) - Google Analytics