js树形菜单:Js table实现的树形导航菜单效 果源代码

合集下载

JSP自定义标签(一) 树形下拉选择菜单

JSP自定义标签(一) 树形下拉选择菜单

一、效果图:

二、自定义标签JAVA代码:

package com.moonNigh.tagSupport;

import java.io.IOException;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.jsp.JspException;

import javax.servlet.jsp.JspWriter;

import javax.servlet.jsp.tagext.TagSupport;

/**

*

* @author HHB

*

* 树形下拉选择控件

*

*/

public class SelectorTag extends TagSupport {

private static final long serialVersionUID = 9878861374414215L;

//标签name属性

private String name;

//所需图片的路径 private String imgPath;

//所需javascript文件的路径

private String scriptPaht;

//所需css文件的路径

private String cssPath;

//项目的根路径

private String rootPath;

//标签的value属性

private String value;

private String text;

private String path;

/*

* 标签的actionUrl属性

* 联想查询结果数据通过向actionUrl属性指定的url请求得到

*/

private String actionUrl;

js导航栏多项点击显示下拉菜单代码

js导航栏多项点击显示下拉菜单代码

js导航栏多项点击显⽰下拉菜单代码

Dropdown

标题 A

下拉 1

下拉 2

下拉 3

标题 B

下拉 1

下拉 2

下拉 3

实现效果

这⾥要实现的效果是,点击id为a的元素弹出dropdown-a的div元素,点击id为b的元素弹出dropdown-b的div元素。

实现思路 (showList⽅法的实现过程)

注意事项:这⾥有个设计点,每⼀个弹出的下拉div(有dropdown-*类的div)同时有id和class。class是为了⽅便使⽤for循环对他们操作,

⽐如这⾥将他们进⾏隐藏。第⼆个是为了写css,每个下拉列表的css都是⼀样的。

1.思路是使⽤js,获得所有的有dropdown-content类的元素。

2.第⼆步有2种做法,如果没有强迫症的话就随便选⼀种就可以了。个⼈⽐较喜欢第⼆种。强迫症对于这2种如果不是很明⽩的话,可以使⽤

上⾯的注释调的alert函数调试⼀下。选择第⼀种hidelist(“”),你会发现在执⾏第3步之前,所对应的dropdown-content永远是隐藏的,由

隐藏切换到显⽰。所以你点击的时候,永远都是alert显⽰。这就是这2种做法的区别。

2-1.先把所有的弹出层(dropdown-content)隐藏。函数hideList('');

2-2.第⼆种就是,判断是否是点击的a链接所对应的那个dropdown-content,其余的全部隐藏。函数hideList("dropdown-" + o.id);

3.最后⼀步就是使⽤toggle⽅法切换所对应dropdown-content元素的显⽰或隐藏状态。

4.还有⼀个就是当下拉菜单展开的时候,点击窗体其他地⽅会把它隐藏的效果。跟模态框是⼀样的。代码在最后那⼏⾏。

这⾥举个不⽣动的例⼦,假如是动物园的个体表演。有猴⼦,狮⼦,灰熊...,每次出来⼀个表演。便于理解showlist(“”)⽅法。这⾥举例的

树形菜单jsTree使用方法

树形菜单jsTree使用方法

树形菜单jsTree使⽤⽅法

jsTree版本:3.0.4

在 MVC中使⽤jsTree

Model:

public class Department

{

public int Id { get; set; }

public string Name { get; set; }

public int PId { get; set; }

}

数据库:

Controller:

jsTree既可以⼀次性把所有节点都加载到客户端,也可以只加载⼀层,点击节点后再去服务端获取下层节点。对于⼩的菜单可以⼀次性加载

完,如果节点很多,可以按需加载(lazy loading)。

1、 ⼀次性加载完所有节点

public JsonResult GetTreeData(int clickId = 0)

{

// use database

var db=new Salary.Models.EntityContext();

/* ⼀次性加载完所有节点.

* 前端只需配置 'data': {

'url': '/Home/GetTreeData',

'dataType': 'json'

* } 不⽤给服务端传值

* 服务端不需写where

*/

var items=from item in db.Department

select new

{

id = item.Id,

parent = item.PId.ToString() == "0" ? "#" : item.PId.ToString(), // root必须是# !

text =

};

return Json(items, JsonRequestBehavior.AllowGet);

}

2、按需加载节点(lazy loading)

public JsonResult GetTreeData(int clickId = 0)

{

// use database

var db=new Salary.Models.EntityContext();

jsp制作动态树型菜单

jsp制作动态树型菜单

jsp制作动态树型菜单

<%@ page contentType="text/html;charset=GBK" %>

<%@ page import="java.sql.*"%>

<%@ page import="java.util.*" %>

<%@ page session="true" %>

连接数据库

   

 ERP-OA??

 

<% String main_id,aaa,aaaa,aaaaa;

String sql="select * from main_menu "; //第一层菜单表

ResultSet rs=db.execQuery(sql);

if(rs!=null)

{

int i=1;

while(rs.next())

{

main_id=rs.getString("id");

aaa="KB"+i+"Parent";

aaaa="'KB"+i+"'";

aaaaa="KB"+i+"Child";

%>

    

height=18 src="images/xtarrow.gif" width=20>

<%=rs.getString("menu_name")%>

<%

String sqlchild="select * from sub_menu where main_menu_id='"+main_id+"'"; //第二层菜单表

ResultSet rschild=db.execQuery(sqlchild);

if(rschild!=null)

{

int j=1;

while(rschild.next()) {

%>

JavaScript实现滑动导航栏效果

JavaScript实现滑动导航栏效果

JavaScript实现滑动导航栏效果

本⽂实例为⼤家分享了js实现滑动导航栏效果的具体代码,供⼤家参考,具体内容如下

item1

item2

item3

item4

item5

item6

item7

item8

item9

item10

item11

导航栏可滑动

下拉点击会相应的改变导航栏

Jsp实现树形结构

Jsp实现树形结构

Jsp实现树形结构

1。原理简介

dtree是一个免费的javascript脚本,只需定义有限的几个参数,就可以做出漂亮的树型菜单。下载目录:/javascripts/tree/

以下是dtree的用法示例:

1)初始化菜单

2)调用函数

显然,如果用动态的脚本来初始化菜单数组(asp,jsp均可),那就可以很方便的实现动态的树型菜单了。

2。jsp动态实现

分以下步骤实现动态的树型菜单:

1)在数据库建tree_info表,有nodeId,parentNodeId,nodeName,nodeUrl四个字段,来存储节点信息。

2)编写java类,用于从数据库找出节点信息,并且生成javascript脚本。

3)编写tag类。用于封装逻辑,简化jsp的开发。

4)建一个web程序进行测试。

3。详细过程

1)在数据库建表,脚本如下:

CREATE TABLE `test`.`tree_info` (

`node_id` INTEGER UNSIGNED NOT NULL DEFAULT -1, `parent_id` INTEGER UNSIGNED NOT NULL DEFAULT -1,

`node_name` VARCHAR(45) NOT NULL,

`ref_url` VARCHAR(45) NOT NULL,

PRIMARY KEY(`node_id`)

)

我使用mysql数据库,如果脚本细节有出入,请自行修改

按照上面的dTree示例插入数据

2)编写TreeInfo.java,这个类用于封装节点信息

package com.diegoyun.web.tree;

/**

* @author Diegoyun

* @version 1.0

js-插件封装-树形折叠菜单

js-插件封装-树形折叠菜单

(function () {

// 插件核⼼:OOP的模式,可以创建单独的实例,这样实现私有属性和公有⽅法的有效管理

class zTree {

constructor(element, options) {

// init params

let self = this,

len = arguments.length,

config = {

element: null,

data: null,

callback: function () {}

};

if (len === 0) throw new Error(`element or options are required!`);

if (len === 1) options = element;

if (!options || typeof options !== "object") throw new TypeError(`options must be an object!`);

if (len === 2) options.element = element;

config = Object.assign(config, options);

// verify the format of the transmitted information

let {

element: element2,

data,

callback

} = config;

if (!element2 || element2.nodeType !== 1) throw new TypeError(`element must be a DOM element object`);

if (!Array.isArray(data)) throw new TypeError(`data must be an array!`);

if (typeof callback !== "function") throw new TypeError(`callback must be an function!`);

java、js中实现无限层级的树形结构(类似递归)

java、js中实现无限层级的树形结构(类似递归)

js中:

var zNodes=[

{id:0,pId:-1,name:"Aaaa"},

{id:1,pId:0,name:"A"},

{id:11,pId:1,name:"A1"},

{id:12,pId:1,name:"A2"},

{id:13,pId:1,name:"A3"},

{id:2,pId:0,name:"B"},

{id:21,pId:2,name:"B1"},

{id:22,pId:2,name:"B2"},

{id:23,pId:2,name:"B3"},

{id:3,pId:0,name:"C"},

{id:31,pId:3,name:"C1"},

{id:32,pId:3,name:"C2"},

{id:33,pId:3,name:"C3"},

{id:34,pId:31,name:"x"},

{id:35,pId:31,name:"y"},

{id:36,pId:31,name:"z"},

{id:37,pId:36,name:"z1123"} ,

{id:38,pId:37,name:"z123123123"}

];

function treeMenu(a){

this.tree=a||[];

this.groups={};

};

treeMenu.prototype={

init:function(pid){

this.group(); return this.getDom(this.groups[pid]);

},

group:function(){

for(var i=0;i

if(this.groups[this.tree[i].pId]){

this.groups[this.tree[i].pId].push(this.tree[i]);

}else{

this.groups[this.tree[i].pId]=[];

bootstrap-table+treegrid实现树形表格

bootstrap-table+treegrid实现树形表格

实现⼀个树形表格的时候有多种⽅法:⽐如把 ztree 的树形直接拼接成表格,或者⽤强⼤的 jqgrid 实现,今天介绍⼀个⽐较轻量级的

实现:使⽤bootstrap-table + treegrid 。

1、引⼊ jquery.js、bootstrap-table.js、bootstrap-table-treegrid.js、jquery.treegrid.js 以及相应的 css ⽂件:bootstrap.css、

bootstrap-table.css、jquery.treegrid.css;

2、后台传到前台的 json 必须含有 id、pid字段,有 id pid 才能形成树结构(这⾥为了演⽰,把 json 写成固定的了,实际中要从后台

获取);

3、在使⽤过程中可以参考 bootstrap-table 的设置参数,通过不同的设置以达到⾃⼰想要的效果;

完整代码⽰例:

系统管理

选择

Vue.js递归组件实现树形菜单

Vue.js递归组件实现树形菜单

最近看了 Vue.js 的递归组件,实现了⼀个最基本的树形菜单。

main.js 作为⼊⼝:

import Vue from 'vue'

import main from './components/main.vue'

new Vue({

el: '#app',

render: h => h(main)

})

它引⼊了⼀个组件 main.vue:

subMenuData1, subMenuData2 存放⼦菜单数据,可以从服务器获取,以实现动态加载。

该⽂件引⼊了树形组件 treeMenu.vue:

{{ item[name] || item.menuName }}

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档