-
关于jquery treeview使用的问题!15
在使用jquery treeview做树型时,由于数据量比较大的!
所以小弟想在展开每个节点时去加载该节点下的所有子节点,目前这里没问题但是出现了这样一个问题就是在加载好节点后,在单击父节点时,应该是收缩节点才对,但是它并没有收缩。小弟是修改了tree view 的原码。
这是原码(function($) { // classes used by the plugin // need to be styled via external stylesheet, see first example var CLASSES = { open: "open", closed: "closed", expandable: "expandable", collapsable: "collapsable", lastCollapsable: "lastCollapsable", lastExpandable: "lastExpandable", last: "last", hitarea: "hitarea", clickcount:'0' }; $.extend($.fn, { swapClass: function(c1, c2) { return this.each(function() { var $this = $(this); if ( $.className.has(this, c1) ) $this.removeClass(c1).addClass(c2); else if ( $.className.has(this, c2) ) $this.removeClass(c2).addClass(c1); }); }, replaceClass: function(c1, c2) { return this.each(function() { var $this = $(this); if ( $.className.has(this, c1) ) $this.removeClass(c1).addClass(c2); }); }, hoverClass: function(className) { className = className || "hover"; return this.hover(function() { $(this).addClass(className); }, function() { $(this).removeClass(className); }); }, heightToggle: function(animated, callback) { animated ? this.animate({ height: "toggle" }, animated, callback) : this.each(function(){ jQuery(this)[ jQuery(this).is(":hidden") ? "show" : "hide" ](); if(callback) callback.apply(this, arguments); }); }, heightHide: function(animated, callback) { if (animated) { this.animate({ height: "hide" }, animated, callback) } else { this.hide(); if (callback) this.each(callback); } }, prepareBranches: function(settings) { // mark last tree items this.filter(":last-child").addClass(CLASSES.last); // collapse whole tree, or only those marked as closed, anyway except those marked as open this.filter((settings.collapsed ? "" : "." + CLASSES.closed) + ":not(." + CLASSES.open + ")").find(">ul").hide(); // return all items with sublists return this.filter(":has(>ul)"); }, applyClasses: function(settings, toggler) { this.filter(":has(>ul):not(:has(>a))").find(">span").click(function(event) { if ( this == event.target ) { toggler.apply($(this).next()); } }).add( $("a", this) ).hoverClass(); // handle closed ones first this.filter(":has(>ul:hidden)") .addClass(CLASSES.expandable) .replaceClass(CLASSES.last, CLASSES.lastExpandable); // handle open ones this.not(":has(>ul:hidden)") .addClass(CLASSES.collapsable) .replaceClass(CLASSES.last, CLASSES.lastCollapsable); // create hitarea this.prepend("<div class=\"" + CLASSES.hitarea + "\"/>") .find("div." + CLASSES.hitarea).click( toggler ) }, treeview: function(settings) { // currently no defaults necessary, all implicit settings = $.extend({}, settings); if (settings.add) { return this.trigger("add", [settings.add]); } if (settings.toggle ) { var callback = settings.toggle; settings.toggle = function() { return callback.apply($(this).parent()[0], arguments); } } // factory for treecontroller function treeController(tree, control) { // factory for click handlers function handler(filter) { return function() { // reuse toggle event handler, applying the elements to toggle // start searching for all hitareas toggler.apply( $("div." + CLASSES.hitarea, tree).filter(function() { // for plain toggle, no filter is provided, otherwise we need to check the parent element return filter ? $(this).parent("." + filter).length : true; }) ); return false; } } // click on first element to collapse tree $(":eq(0)", control).click( handler(CLASSES.collapsable) ); // click on second to expand tree $(":eq(1)", control).click( handler(CLASSES.expandable) ); // click on third to toggle tree $(":eq(2)", control).click( handler() ); } var c=1; // handle toggle event function toggler() { var s=Math.round(Math.random()*10000); var t=$(this).parent().html(); var pub_name = $(this).parent().attr("title"); // this refers to hitareas, we need to find the parent lis first $(this).parent() // swap classes .swapClass( CLASSES.collapsable, CLASSES.expandable ) .swapClass( CLASSES.lastCollapsable, CLASSES.lastExpandable ) // find child lists .find( ">ul" ) .heightToggle( settings.animated, settings.toggle ); // toggle them if ( settings.unique ) { $(this).parent() .siblings() .replaceClass( CLASSES.collapsable, CLASSES.expandable ) .replaceClass( CLASSES.lastCollapsable, CLASSES.lastExpandable ) .find( ">ul" ) .heightHide( settings.animated, settings.toggle ); } } function serialize() { function binary(arg) { return arg ? 1 : 0; } var data = []; branches.each(function(i, e) { data[i] = $(e).is(":has(>ul:visible)") ? 1 : 0; }); $.cookie("treeview", data.join("") ); } function deserialize() { var stored = $.cookie("treeview"); if ( stored ) { var data = stored.split(""); branches.each(function(i, e) { $(e).find(">ul")[ parseInt(data[i]) ? "show" : "hide" ](); }); } } // add treeview class to activate styles this.addClass("treeview"); // prepare branches and find all tree items with child lists var branches = this.find("li").prepareBranches(settings); switch(settings.persist) { case "cookie": var toggleCallback = settings.toggle; settings.toggle = function() { serialize(); if (toggleCallback) { toggleCallback.apply(this, arguments); } }; deserialize(); break; case "location": var current = this.find("a").filter(function() { return this.href == location.href; }); if ( current.length ) { current.addClass("selected").parents("ul, li").add( current.next() ).show(); } break; } branches.applyClasses(settings, toggler); // if control option is set, create the treecontroller if ( settings.control ) treeController(this, settings.control); return this.bind("add", function(event, branches) { $(branches).prev().removeClass(CLASSES.last).removeClass(CLASSES.lastCollapsable).removeClass(CLASSES.lastExpandable); $(branches).find("li").andSelf().prepareBranches(settings).applyClasses(settings, toggler); }); } }); // provide backwards compability $.fn.Treeview = $.fn.treeview; })(jQuery);
我在function toggler()方法中加了入这段代码$.ajax({url:'systemAreaSet.do', type:'get', dataType:'html', data:'method=getChildNode&parentcode='+pub_name+'&s='+s, success: function(html){ $(html).appendTo("#"+pub_name); } });
2008年8月03日 17:02
目前还没有答案
相关推荐
jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery.treeview插件库)jquery插件库(jquery....
本文将深入探讨jQuery Treeview的使用方法及其在实际应用中的示例。 首先,jQuery Treeview主要用于构建可交互的目录结构或菜单系统,它可以轻松地将HTML列表转换为具有展开/折叠功能的树形视图。这在处理诸如文件...
在本文中,我们将深入探讨如何使用jQuery库来创建一个功能丰富的TreeView组件,即树状结构的菜单。jQuery TreeView是一个流行的插件,它允许开发者轻松地将数据组织成层次结构,通常用于展示文件系统、目录结构或者...
在本文中,我们将深入探讨如何将Jquery TreeView与.NET用户控件相结合,构建一个功能丰富的树形视图。Jquery TreeView是一个流行的JavaScript库,它允许开发者在网页上创建可交互的、层次化的列表。而.NET用户控件则...
要使用`jQuery UI Treeview`,首先需要确保已经安装了jQuery和jQuery UI库。通常,这涉及到在HTML文件中添加对应的CDN链接或者将库文件下载到本地并引入。例如: ```html <script src="https://code.jquery....
在使用 jQuery Treeview 时,你需要首先在页面中引入 jQuery 库和 Treeview 插件的 JS 和 CSS 文件。例如: ```html <link rel="stylesheet" href="jquery.treeview.css"> <script src="jquery.js"> <script src="...
标题"jquery treeview"暗示我们将讨论如何使用jQuery Treeview来创建和操作树形视图。这个插件的核心功能包括: 1. **节点操作**:jQuery Treeview支持动态添加、删除和修改节点。你可以通过调用特定的方法来展开或...
3. **初始化jQuery Treeview**:在DOM准备就绪后,使用jQuery选择器找到这个列表,并调用`treeview()`方法进行初始化: ```javascript $(document).ready(function() { $('#treeview').treeview({ animated: '...
在项目中使用jQuery TreeView,首先需要确保已引入jQuery库。接着,将`jquery.tree.css`和`jQuery.tree.old.css`这两个CSS文件引入到HTML文档的`<head>`部分,它们分别提供了样式支持和旧版本的样式。同时,将`js`...
在本篇文章中,我们将深入探讨jQuery Treeview的原理、使用方法及其实战应用。 一、jQuery Treeview基本概念 jQuery Treeview是基于jQuery框架的一个插件,由Peter Hausser开发。它的主要功能是将无序列表(`<ul>`...
jsontree (jquery.treeview.js) jQuery插件版 treeview1.0jsontree (jquery.treeview.js) jQuery插件版 treeview1.0jsontree (jquery.treeview.js) jQuery插件版 treeview1.0jsontree (jquery.treeview.js) jQuery...
《jQuery TreeView 拖拽功能详解》 在Web开发中,树形视图(TreeView)是一种常见的数据展示方式,它能清晰地呈现层级关系。jQuery TreeView是jQuery库的一个扩展,提供了丰富的交互功能,包括拖拽操作。本文将深入...
在项目中使用jQuery Treeview.js 首先需要引入jQuery库和treeview插件的JS及CSS文件。你可以通过在HTML文件头部添加以下代码来完成这一步: ```html <link rel="stylesheet" href="jquery.treeview.css" type="text...
在实现的时候也会有很多的方法,例如可以用extjs,jquery treeview等一些js开发包。 但是在开发的时候我种想找个例子来参考下,发现有很多这样的例子,包括extjs和jquery treeview的官方也有,但结合java后台实现的...
接着,我们需要引入jQuery库以及jQuery Treeview插件的CSS和JS文件。确保这些资源已正确链接到页面中,例如: ```html <link rel="stylesheet" href="css/jquery.treeview.css"> <script src="js/jquery.js"> ...
本文将深入探讨jQuery Treeview的使用方法、主要功能以及实际应用。 一、jQuery Treeview概述 jQuery Treeview是基于jQuery的一个开源插件,主要用于将HTML列表转换为可交互的树状结构。通过使用treeview,我们...
下面我们将深入探讨jQuery Treeview的基本概念、实现原理以及使用方法。 首先,jQuery Treeview是一个插件,它扩展了jQuery的功能,允许开发者将HTML表格或无序列表转换为具有折叠/展开功能的树状视图。这个插件...
1. **安装与引入**:要使用jQuery TreeView,首先需要在项目中引入jQuery库和TreeView的CSS及JS文件。这可以通过CDN链接或者将文件下载到本地项目中进行引用。 2. **HTML结构**:创建一个无序列表(`<ul>`)作为...
总的来说,这个项目展示了如何结合使用jQuery Treeview进行前端展示,以及Struts2、Spring和Hibernate这三大Java EE框架进行后端处理,构建一个动态的、交互式的树状数据管理界面。理解并掌握这些技术对于提升Web...