备忘录:Jstree(含Jquery)
这篇备忘录介绍了JStree使用时应注意的问题,实际上很多问题是因为JStree的背景知识(比如Jquery)不清楚而产生,本备忘录指出问题有关的背景知识。
1. 正确调用Jquery
清单 1. 如何正确调用 jQuery 函数
// 不正确
<script language=JavaScript>
$("div").addClass("a");
</script>
//正确
$(document).ready(function(){
$("div").addClass("a");
});
//或
$(document).ready(function(){
myAddClass();
});
function myAddClass()
{
$("div").addClass("a");
}
也就是所有 jQuery 代码必须在页面上的这个函数中,或在它自己的函数中。如果 jQuery 代码不在一个函数中,则不可将其代码放置在 JavaScript 代码中。
2. 小心内部引用
像JStree会有引用主题包的代码,如果库代码和相应的主题包的文件结构存在问题的话,会不能正确显示控件。
如上图,树的库代码和themes文件结构关系必须正确。
所以一个简单的方式,下载到可以使用的演示代码,那么里面的文件,尤其是资源文件和其他的js代码的文件结构最好保持原样。
当然还有一种专业的做法,就是看懂像jquery.tree.js之类的库代码。
3. 无限级数(仅与jstree有关)
玩转JSTREE的json可以生成各种有意思的树,比如下面的代码
[
{ data : "A node", children : [ { data : "Only child",state:"closed" }] }
]
这段代码可以生成无限级数的树,主要原因就是:子节点是关闭的。试试看, state为open和closed的区别!
1. 书写JSON串
{"attributes":{"access":"test","defval":"test","descry":"test","id":"test","indexes":"test","mib":"test","name":"name","oid":"test","status":"test","syntax":"test"},"children":[],"data":{"icon":"","title":"name"}}
比如我们要生成如上的JSON串。即节点名为name,有一大串属性。可以采用下面的方法:
l 为相应的JSON关键字书写JAVAbean,比如JStree 里有attribute,data,和children,写相应的bean。
public class AttributeBean {
private String id;
private String name;
private String oid;
private String mib;
private String syntax;
private String access;
private String status;
private String defval;
private String indexes;
private String descry;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getOid() {
return oid;
}
public void setOid(String oid) {
this.oid = oid;
}
public String getMib() {
return mib;
}
public void setMib(String mib) {
this.mib = mib;
}
public String getSyntax() {
return syntax;
}
public void setSyntax(String syntax) {
this.syntax = syntax;
}
public String getAccess() {
return access;
}
public void setAccess(String access) {
this.access = access;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getDefval() {
return defval;
}
public void setDefval(String defval) {
this.defval = defval;
}
public String getIndexes() {
return indexes;
}
public void setIndexes(String indexes) {
this.indexes = indexes;
}
public String getDescry() {
return descry;
}
public void setDescry(String descry) {
this.descry = descry;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
AttributeBean中的ID是JSTREE里面定义的,其他都是我们自定义的。
public class DataBean {
private String title;
private String icon;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getIcon() {
return icon;
}
public void setIcon(String icon) {
this.icon = icon;
}
}
DataBean里面的属性都是JStree定义的。
public class NodBean {
private AttributeBean attributes;
private DataBean data;
private NodBean[] children;
public AttributeBean getAttributes() {
return attributes;
}
public void setAttributes(AttributeBean attributes) {
this.attributes = attributes;
}
public DataBean getData() {
return data;
}
public void setData(DataBean data) {
this.data = data;
}
public NodBean[] getChildren() {
return children;
}
public void setChildren(NodBean[] children) {
this.children = children;
}
}
NodBean的属性是由JSTREE定义的。
三个BEAN的属性层次关系,尤其是NodBean的,是由JSTREE定义的,必须严格遵循。
做好了上面的准备,要生成一个JSTREE要的JSON就可以考虑使用JSON-lib了!
JSONObject.fromObject(root),是要由JavaBean直接生成Json的方式,之后只要对其使用toString()方法就可以了!
要生成一个节点代码如下:
import net.sf.json.JSONObject;
……(还有对NodBean、DataBean、AttributeBean的引入)
/**
* 测试Json库的代码段
* @author ruyun
*
*/
public class TestJson {
/**
* @param args
*/
public static void main(String[] args) {
NodBean root = new NodBean();
AttributeBean rattr = new AttributeBean();
DataBean rdata = new DataBean();
rattr.setAccess("test");
rattr.setDefval("test");
rattr.setDescry("test");
rattr.setIndexes("test");
rattr.setMib("test");
rattr.setName("name");
rattr.setOid("test");
rattr.setStatus("test");
rattr.setSyntax("test");
rattr.setId("test");
rdata.setTitle("name");
root.setAttributes(rattr);
root.setData(rdata);
JSONObject js = JSONObject.fromObject(root);
System.out.println(js.toString());
String str = js.toString().replace(",\"children\":[]", "");
System.err.println(str);
}
正如上面的一样,如果不想要有太多的“空孩子”JSON串,可以滤掉,即把,”children”:[]滤掉!
结果:
{"attributes":{"access":"test","defval":"test","descry":"test","id":"test","indexes":"test","mib":"test","name":"name","oid":"test","status":"test","syntax":"test"},"children":[],"data":{"icon":"","title":"name"}}
{"attributes":{"access":"test","defval":"test","descry":"test","id":"test","indexes":"test","mib":"test","name":"name","oid":"test","status":"test","syntax":"test"},"data":{"icon":"","title":"name"}}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/ruyun126/archive/2010/05/14/5589405.aspx
分享到:
相关推荐
微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本...
在本示例中,我们将探讨如何使用jQuery实现一个日历表功能,并添加日期备忘录代码。这个功能可以用于网页应用程序,帮助用户方便地查看和管理他们的日期提醒。 首先,我们需要引入jQuery库。这通常通过在HTML文件中...
毕业设计jspssm备忘录管理hsgA源码含文档含教程 后台是ssm框架,页面是jsp,数据库mysql,jdk1.8,开发工具用ecplise、myecplise、sts、idea都可以 本系统主要包含了等系统用户管理、备忘录管理、日志管理功能模块。...
"微信小程序推荐demo:备忘录:适用1028版本.zip"是一个示例项目,展示了如何利用微信小程序框架开发一个备忘录应用。这个压缩包包含了该项目的源代码和其他相关资源,适用于微信小程序的1028版本。 在微信小程序的...
这个“微信小程序推荐demo:备忘录:适用1028版本.rar”压缩包文件是一个关于如何开发微信小程序的示例,特别是一个备忘录应用的实现。通过学习和分析这个示例,开发者可以了解微信小程序的基本结构、组件使用以及...
在本项目中,我们讨论的是一个使用Java编程语言与MySQL数据库进行开发的备忘录系统。这个系统的主要目标是提供一套便捷的工具,让用户能够轻松地管理他们的日常事务,包括创建、编辑、查找和删除备忘录。同时,系统...
【标题】备忘录APP与记事本APP的开发与实现 在当今信息化社会,备忘录和记事本应用程序已经成为智能手机用户不可或缺的工具。它们为用户提供了一个方便、快捷的方式来记录日常生活中的各种事项,无论是待办任务、...
微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小...
【iOS 备忘录:功能详解与操作指南】 iOS 备忘录是苹果公司为iPhone、iPad以及iPod touch用户提供的一个强大而实用的应用程序,它允许用户方便地记录、编辑和管理各种文本、图片、链接等信息。备忘录在日常生活和...
在本项目中,我们主要探讨如何使用jQuery和Bootstrap框架来创建一个简单的Web备忘录应用。这个应用利用HTML5的强大功能,为用户提供了一个方便、直观的界面,以便他们记录日常事务,并设定提醒时间,以便在特定时刻...
备忘录:技术备忘录
微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习...
【BWL_MFCc++备忘录系统】是一款基于Microsoft Foundation Classes (MFC)库的C++应用程序,用于实现简单的备忘录功能。MFC是微软提供的一套面向对象的类库,它使得Windows应用程序开发更为便捷。在这个系统中,用户...
小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+...
【标题】:“桌面备忘录(可放在桌面的备忘录)”是一款便捷的桌面工具,旨在帮助用户轻松记录日常生活和工作中的重要事项。这款备忘录软件设计精巧,可以直接放置在桌面上,便于随时查看和编辑,提高了工作效率与...
**Android课程设计--便捷备忘录** 在移动应用开发领域,Android系统因其开源特性与广泛的应用,成为开发者的重要平台。本项目"Android课程设计--便捷备忘录"旨在教授学生如何利用Android Studio进行应用程序开发,...
微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源...
《信息集合与备忘录》是一个综合性的资源库,它包含了一系列有关技术、黑客工具、命令行技巧以及网络工具的丰富资料。这个项目的核心目的是激发技术爱好者的学习热情,同时也是他们获取知识和技能的重要来源。下面将...
设计和实现一个类似个人备忘录的 Android APP ,数据库采用 SQLite (也可以直接访问 Web 端 MySQL 数据库、或提供 Web 接口访问 MySQL 数据库)。 1.用户注册和登录(这类 APP 一般面对个人,用户不需要分类别); ...
《桌面备忘录:高效管理日常事务的利器》 在我们的日常生活和工作中,常常需要记录各种琐碎但重要的事项,以便随时查阅和提醒。这时,一款好用的备忘录软件就显得尤为重要。"最好用的备忘录 桌面备忘录"就是这样一...