`

备忘录:Jstree(含Jquery)

阅读更多

备忘录: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版本(源代码+截图)微信小程序推荐demo:备忘录:适用1028版本...

    jQuery日历表设置日期备忘录代码

    在本示例中,我们将探讨如何使用jQuery实现一个日历表功能,并添加日期备忘录代码。这个功能可以用于网页应用程序,帮助用户方便地查看和管理他们的日期提醒。 首先,我们需要引入jQuery库。这通常通过在HTML文件中...

    毕业设计jspssm备忘录管理hsgA源码含文档含教程

    毕业设计jspssm备忘录管理hsgA源码含文档含教程 后台是ssm框架,页面是jsp,数据库mysql,jdk1.8,开发工具用ecplise、myecplise、sts、idea都可以 本系统主要包含了等系统用户管理、备忘录管理、日志管理功能模块。...

    微信小程序推荐demo:备忘录:适用1028版本.zip

    "微信小程序推荐demo:备忘录:适用1028版本.zip"是一个示例项目,展示了如何利用微信小程序框架开发一个备忘录应用。这个压缩包包含了该项目的源代码和其他相关资源,适用于微信小程序的1028版本。 在微信小程序的...

    微信小程序推荐demo:备忘录:适用1028版本.rar

    这个“微信小程序推荐demo:备忘录:适用1028版本.rar”压缩包文件是一个关于如何开发微信小程序的示例,特别是一个备忘录应用的实现。通过学习和分析这个示例,开发者可以了解微信小程序的基本结构、组件使用以及...

    java+Mysql开发的备忘录系统

    在本项目中,我们讨论的是一个使用Java编程语言与MySQL数据库进行开发的备忘录系统。这个系统的主要目标是提供一套便捷的工具,让用户能够轻松地管理他们的日常事务,包括创建、编辑、查找和删除备忘录。同时,系统...

    备忘录APP,记事本APP

    【标题】备忘录APP与记事本APP的开发与实现 在当今信息化社会,备忘录和记事本应用程序已经成为智能手机用户不可或缺的工具。它们为用户提供了一个方便、快捷的方式来记录日常生活中的各种事项,无论是待办任务、...

    微信小程序 备忘录 (源码)

    微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小程序 备忘录 (源码)微信小...

    IOS备忘录

    【iOS 备忘录:功能详解与操作指南】 iOS 备忘录是苹果公司为iPhone、iPad以及iPod touch用户提供的一个强大而实用的应用程序,它允许用户方便地记录、编辑和管理各种文本、图片、链接等信息。备忘录在日常生活和...

    jquery+bootstrap 实现简单备忘录

    在本项目中,我们主要探讨如何使用jQuery和Bootstrap框架来创建一个简单的Web备忘录应用。这个应用利用HTML5的强大功能,为用户提供了一个方便、直观的界面,以便他们记录日常事务,并设定提醒时间,以便在特定时刻...

    备忘录:技术备忘录

    备忘录:技术备忘录

    微信小程序源码 备忘录(学习版)

    微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习版)微信小程序源码 备忘录(学习...

    BWL_MFCc++备忘录系统_

    【BWL_MFCc++备忘录系统】是一款基于Microsoft Foundation Classes (MFC)库的C++应用程序,用于实现简单的备忘录功能。MFC是微软提供的一套面向对象的类库,它使得Windows应用程序开发更为便捷。在这个系统中,用户...

    小程序源码 备忘录 (代码+截图)

    小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+截图)小程序源码 备忘录 (代码+...

    桌面备忘录(可放在桌面的备忘录)

    【标题】:“桌面备忘录(可放在桌面的备忘录)”是一款便捷的桌面工具,旨在帮助用户轻松记录日常生活和工作中的重要事项。这款备忘录软件设计精巧,可以直接放置在桌面上,便于随时查看和编辑,提高了工作效率与...

    Android课程设计--便捷备忘录

    **Android课程设计--便捷备忘录** 在移动应用开发领域,Android系统因其开源特性与广泛的应用,成为开发者的重要平台。本项目"Android课程设计--便捷备忘录"旨在教授学生如何利用Android Studio进行应用程序开发,...

    微信小程序 小工具类 备忘录 (源代码+截图)

    微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源代码+截图)微信小程序 小工具类 备忘录 (源...

    信息集合与备忘录:一个鼓舞人心的列表、手册、备忘录、博客、黑客工具、一行命令、CLI/Web 工具等信息的集合

    《信息集合与备忘录》是一个综合性的资源库,它包含了一系列有关技术、黑客工具、命令行技巧以及网络工具的丰富资料。这个项目的核心目的是激发技术爱好者的学习热情,同时也是他们获取知识和技能的重要来源。下面将...

    Android开发备忘录

    设计和实现一个类似个人备忘录的 Android APP ,数据库采用 SQLite (也可以直接访问 Web 端 MySQL 数据库、或提供 Web 接口访问 MySQL 数据库)。 1.用户注册和登录(这类 APP 一般面对个人,用户不需要分类别); ...

    最好用的备忘录 桌面备忘录

    《桌面备忘录:高效管理日常事务的利器》 在我们的日常生活和工作中,常常需要记录各种琐碎但重要的事项,以便随时查阅和提醒。这时,一款好用的备忘录软件就显得尤为重要。"最好用的备忘录 桌面备忘录"就是这样一...

Global site tag (gtag.js) - Google Analytics