备忘录: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日历表设置日期备忘录代码 jQuery日历表设置日期备忘录代码 jQuery日历表设置日期备忘录代码
备忘录:技术备忘录
小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+...
微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习...
微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源...
设计和实现一个类似个人备忘录的 Android APP ,数据库采用 SQLite (也可以直接访问 Web 端 MySQL 数据库、或提供 Web 接口访问 MySQL 数据库)。 1.用户注册和登录(这类 APP 一般面对个人,用户不需要分类别); ...
备忘录:备忘录
主动降噪功能与TWS真无线耳机的结合,对于消费者来说可以提高使用体验。不过当前市面上的这类产品,在声音表现和降噪素质上都达到一定水平的,往往售价偏高,让一部分消费者望而却步,头戴式主动降噪耳机的价格更是...
这是一款带备忘录功能的简单的jQuery日期选择器插件。你可以为该日期选择器的某些日期设定设定一些信息,方便日常查询,就像现实生活中的备忘录一样。
这是一个基于html5+jquery+bootstrap的web备忘录,功能是用户写下备忘事项后,到达提醒时间后以闹钟及页面的形式提醒用户。
一个鼓舞人心的列表、手册、备忘录、博客、黑客工具、一行命令、CLI/Web 工具等信息的集合。这个项目汇集了各种有趣和实用的技术资源,旨在为技术爱好者提供灵感和知识。
微信小程序备忘录,备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录备忘录...
微信小程序demo
微信小程序demo
备忘录:备忘:为Git存储库构建工件缓存
微信小程序Demo:备忘录
用android编写的便捷备忘录,能实现增,删,改,查的功能。有时间提示,里面有apk文件可以down到手机上面直接运行,还有就是android studio项目,直接导入可以使用
Android studio成品源码项目日历备忘录记事本,该日历备忘录app实现了日历查看,添加备忘录,闹钟提醒,删除备忘录等功能,适合新手学习,数据库sqlite。 程序开开发发,全网回复最快,效率最高。 其他需求也可以...