`
小胖vs小猪
  • 浏览: 61572 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

refreshTree的getJson不刷新的问题

 
阅读更多

最近要做树,用dtree+ajax来实现,结果半天也弄不出来。碰到两个问题:

1、dtree+ajax不刷新

   直接用例子程序来做一个静态的树,节点都是自己写的,但是放在getJson里面不能刷新,+号点击没有反应,找了半天,终于找到问题了:

            doucument.write(b);

要写成

           $("#treeDiv").html(tree.toString());

下面给一个整体的实例。

http://www.cnblogs.com/kenkofox/archive/2011/03/28/1997638.html

 

(!!!在IE,refreshTree的

getJSON不刷新的问题,参考:http://www.cnblogs.com/kenkofox/archive/2011/04/02/2004101.html)

本来我想使用jsTree或者treeView这种jquery插件的,这些插件虽然功能很强大,但无奈,太花俏了,需要学习的配置很多。

而且对于我的应用来说,并不需要花俏的功能,例如拖拽,双击重命名,右键菜单等。

耗了2天在学习jsTree和treeView,都发现不太适合,索性用最原始的dtree,效果也不错,而且所有代码简单,能够完全掌握在自己控制之下。

废话不说了。在这里分享一下,我用ajax加载dtree的做法,后台servlet提供json格式的tree数据。这个做法应该可以用到做一个系统的导航栏上。

全部代码:ajax,servlet动态加载dtree.rar

HTML:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF8"> <link rel="StyleSheet" href="./dtree/dtree.css" type="text/css" /> <script type="text/javascript" src="./dtree/dtree.js"></script> <script type="text/javascript" src="./js/jquery-1.5.1.min.js"></script> <script> dtreePath = './dtree/'; //我在dtree.js中加了这个变量,便于调整img路径                              //需要设置为dtree目录位置,底下有img目录 var tree; //tree必须为全局变量 $(document).ready(function(){ refreshTree(); }); /** * 点击菜单的操作,在后台Servlet返回的json数据中设置了url为javascript:showFolder(dir) */ function showFolder(dir) { alert(dir); } function refreshTree() { //生成新的树,ajax方式获取最新tree,每个json item表示一个节点 $.getJSON('OnlineFileManagerServlet',function(data){ tree = new dTree('tree'); //参数tree,表示生成的html代码中id的标记,不影响功能 tree.add(0,-1,'网络文件夹'); //树根 //遍历JSON中的每个entry $.each(data,function(entryIndex,entry){ tree.add(entry['id'], entry['pid'], entry['name'], entry['url']); }); $("#treeDiv").html(tree.toString()); }); } </script> </head> <body> <div class="dtree"> <p><a href="javascript: tree.openAll();">open all</a> | <a href="javascript: tree.closeAll();">close all</a></p> <div id="treeDiv"> </div> </div> </body> </html>

Servlet:(关于json,参考:http://www.cnblogs.com/kenkofox/archive/2011/03/25/1995436.html)

protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setCharacterEncoding("UTF-8"); PrintWriter out = response.getWriter(); try { //创建json数据 JSONArray tree = new JSONArray(); JSONObject node1 = new JSONObject(); node1.put("id", "1"); node1.put("pid", "0"); node1.put("name", "金属产品检验报告"); node1.put("url", "javascript:showFolder('" + "abc" + "')"); JSONObject node2 = new JSONObject(); node2.put("id", "2"); node2.put("pid", "0"); node2.put("name", "塑料产品检验报告"); node2.put("url", "javascript:showFolder('" + "abc" + "')"); JSONObject node3 = new JSONObject(); node3.put("id", "3"); node3.put("pid", "1"); node3.put("name", "阳江海关检验报告"); node3.put("url", "javascript:showFolder('" + "abc" + "')"); JSONObject node4 = new JSONObject(); node4.put("id", "4"); node4.put("pid", "3"); node4.put("name", "检验报告abc"); node4.put("url", "javascript:showFolder('" + "abc" + "')"); JSONObject node5 = new JSONObject(); node5.put("id", "5"); node5.put("pid", "2"); node5.put("name", "检验报告2"); node5.put("url", "javascript:showFolder('" + "abc" + "')"); tree.put(node1); tree.put(node2); tree.put(node3); tree.put(node4); tree.put(node5); out.write(tree.toString()); System.out.println(tree.toString()); } catch (JSONException ex) { Logger.getLogger(OnlineFileManagerServlet.class.getName()).log(Level.SEVERE, null, ex); } finally { out.close(); } }
 

 

 

分享到:
评论

相关推荐

    getJSON解决 跨域问题例子

    本篇将详细讲解如何使用getJSON来解决跨域问题,以及涉及到的相关技术点。 首先,我们要理解什么是跨域。跨域是指一个域下的文档或脚本尝试请求另一个域下的资源时,如果两个域不相同,就会触发跨域安全策略。例如...

    $.getJSON同步异步问题1

    $.getJSON的异步特性可能导致在并发执行多个请求时,回调函数的执行顺序并不与请求的发起顺序一致,这可能导致数据的混乱。例如,如果你有两个或更多的$.getJSON请求,它们可能在不同的时间完成,导致在错误的时间...

    JQuery 获取json数据$.getJSON方法的实例代码

    在这一部分中,将详细解释关于JQuery库中的$.getJSON方法及其实际应用的知识点。$.getJSON是JQuery中处理JSON数据常用的一个方法,它用于从服务器获取JSON格式数据,并且可以指定当成功接收到数据时执行的回调函数来...

    getjson()兼容性问题

    ### getjson()兼容性问题详解 #### 一、问题背景 在使用jQuery进行Ajax操作时,开发者可能会遇到一些兼容性问题,尤其是在处理JSON数据时。本文将深入探讨jQuery中的`getjson()`兼容性问题,特别是在IE6等老旧...

    Jquery getJson

    `jQuery.getJSON`是jQuery库中的一个非常重要的函数,它用于从服务器端异步获取JSON格式的数据,这对于前端与后端的数据交互具有显著的意义。在本文中,我们将深入探讨`jQuery.getJSON`的工作原理、使用方法以及如何...

    解决JQurey跨域问题$.get|$.post|$.getJSON等等统统可跨域

    本篇将详细介绍如何解决jQuery跨域问题,涉及的方法包括$.get、$.post和$.getJSON等。 首先,我们需要理解什么是跨域。同源策略是浏览器为保障安全而实施的一项机制,它规定JavaScript只能访问与当前页面同源(协议...

    getJson+ashx实现数据交互(入门级)

    在本文中,我们将深入探讨如何使用`getJSON`和`.ashx`处理数据交互,特别关注C#环境下的实现。`getJSON`是jQuery库中一个非常实用的函数,用于异步获取JSON格式的数据,而`.ashx`是ASP.NET中处理HTTP请求的自定义...

    用JQuery里的getJSON函数进行跨域远程调用

    这是一个前端后端通过JQuery的getJSON函数交互json数据的例子。 前端网页是front.html,后端处理的模块是back.jsp 把back.jsp、front.html及jquery-1.8.3.min.js部署在Tomcat的webapps的ROOT下,通过在浏览器输入...

    GetJson是从REST服务接收JSON数据的最简单HTTP库

    从提供的压缩包文件名"100rabhkr-GetJSON-b43fbf0"来看,这可能是一个特定版本的"GetJson"库的下载文件。通常,这样的文件包含库的源码、jar文件或其他构建资源,开发者可以将其导入到项目中直接使用,或者查看源码...

    详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()

    而Jquery库提供了一系列封装好的Ajax函数,如$.get(), $.post(), $.ajax(), 和$.getJSON(),这些函数简化了前端开发者与后端数据交互的过程。 ### 1. $.get() `$.get()`函数是最简单的一种异步请求方式,它发送一...

    ajax格式的getJSON

    ### AJAX与getJSON详解 在现代Web开发中,异步JavaScript和XML(AJAX)技术被广泛应用于实现网页的局部刷新,提升用户体验。本篇将基于提供的文件信息——“ajax格式的getJSON”,深入探讨AJAX的基本原理、getJSON...

    GetJson.java

    Java 遍历文件夹文件,读取Json文本字符串,存入数据库。

    C# url post get json

    在C#中处理HTTP请求,如POST和GET,以及与JSON数据交互是常见的任务。本文将深入探讨这些主题。 首先,让我们了解GET和POST方法在HTTP协议中的角色。GET方法通常用于从服务器获取资源,而POST方法则用于向服务器...

    JQ getJSON获取数据

    本文将深入探讨jQuery中的`getJSON`方法,它是用于从服务器获取JSON格式数据的一个便捷函数。通过了解并熟练掌握这个方法,开发者可以轻松地实现与服务器的数据交互,提升用户体验。 `getJSON`是jQuery提供的一个...

    jquery的getJson()方法获取服务端返回的JSON字符串

    在本文中,我们将深入探讨jQuery的`$.getJSON()`方法,它用于从服务器获取JSON格式的数据,并且无需进行页面刷新。这个方法在实现动态、无刷新的Web应用程序时非常有用,例如在构建级联下拉框这样的功能。 `$.get...

    浅析$.getJSON异步请求和同步请求

    在使用$.getJSON发起请求时,我们通常会遇到返回值为空的问题,这是因为异步请求的特性导致的。在异步请求中,$.getJSON发起请求之后,可能会在请求完成之前就执行了后续的代码。如果在数据到达前尝试使用这些数据,...

    JQuery getJSON() 调用Servlet简单例子

    `getJSON()`是jQuery提供的一个便捷方法,用于通过Ajax请求获取JSON格式的数据。在这个例子中,我们将深入探讨如何使用jQuery的`getJSON()`函数与Servlet进行交互。 首先,我们来看`getJSON()`的基本用法。`getJSON...

    ie下$.getJSON出现问题的解决方法

    由于$.getJSON本质上是一个简化版的$.ajax方法,如果遇到$.getJSON不工作的情况,可以尝试改用$.ajax方法来实现相同的功能。$.ajax提供了更多配置选项,使得开发者可以更精细地控制AJAX请求。基本的$.ajax请求可以写...

    sohu视频接口(下拉自动完成getJson)

    本教程将聚焦于如何利用Sohu视频接口结合JQuery的GetJSON方法来实现这一功能,同时使用AutoComplete插件进行辅助。 首先,让我们了解一下`GetJSON`。在JQuery库中,`$.getJSON()`是一个简洁的方法,用于从服务器...

    PHPCMS通过getJSON调用的地址回调函数一直无法执行

    其次,我们要知道什么是getJSON,它是JavaScript中用于向服务器请求数据并以JSON格式接收返回数据的一个方法。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器...

Global site tag (gtag.js) - Google Analytics