jquery 访问控制菜单
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHpqOTExOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
要实现的效果:
1、父节点选中,则以下的子节点全选中
2、父节点不选中。则以下的子节点全不选中
3、子节点仅仅要选中了一个,则父节点选中
4、子节点全不选中。则父亲节点不选中
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'quanxian.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page"> <script type="text/javascript" src="js/jquery-1.11.1.js"></script>
<script type="text/javascript"> function selectAll(idStart){
var x = $("input[id^='"+idStart+"']");
x.each(function(index,domEle){
$(this).prop("checked",true);
}); } function unSelectAllBox(idStart){
var x = $("input[id^='"+idStart+"']");
x.each(function(index,domEle){
$(this).removeProp("checked");
});
} function selectFather(id){
$("#"+id).prop("checked", "checked");
} function UnSelectFather(id){
$("#"+id).removeProp("checked");
} //推断还有没被选中的checkedbox
function isExistSelect(idStart){
var flag = false;
var $arrayEle=$("input[id^='"+idStart+"'][id!='"+idStart+"_"+idStart+"']");
for (var i=0; i<$arrayEle.length; i++){
if ($($arrayEle[i]).prop("checked")){
flag=true;
}
}
return flag;
} function goSelect(id){
var arrayVal=id.split("_");
if (arrayVal[0] == arrayVal[1]){//parent dom
if ($("#"+id).prop("checked")){
selectAll(arrayVal[0]);
}else{
unSelectAllBox(arrayVal[0]);
}
}else{//child dom if ($("#" + id).prop("checked")) {
selectFather(arrayVal[0] + "_" + arrayVal[0]);
}
else {
if (!isExistSelect(arrayVal[0])){
UnSelectFather(arrayVal[0] + "_" + arrayVal[0]);
}
}
}
} </script>
</head> <body> <fieldset>
<legend><input type="checkbox" id="company_company" onclick="goSelect(this.id)" />客户管理</legend>
<div><input type="checkbox" id="company_base" onclick="goSelect(this.id)"/>客户管理1</div>
<div><input type="checkbox" id="company_linkman" onclick="goSelect(this.id)" />客户管理2</div>
<div><input type="checkbox" id="company_linkTouch" onclick="goSelect(this.id)"/>客户管理3</div>
<div><input type="checkbox" id="company_rule" onclick="goSelect(this.id)"/>客户管理4</div> </fieldset> <br/>
<fieldset>
<legend><input type="checkbox" id="employee_employee" onclick="goSelect(this.id)" />员工管理</legend>
<div><input type="checkbox" id="employee_base" onclick="goSelect(this.id)"/>员工管理1</div>
<div><input type="checkbox" id="employee_linkman" onclick="goSelect(this.id)" />员工管理2</div>
<div><input type="checkbox" id="employee_linkTouch" onclick="goSelect(this.id)"/>员工管理3</div>
<div><input type="checkbox" id="employee_rule" onclick="goSelect(this.id)"/>员工管理4</div> </fieldset>
</body>
</html>
note:本例中获取节点属性用的是prop()方法,用attr()不行。。jquery 1.6版本号就对这两个方法进行了改变,attribute 表示从文档中获取DOM状态信息,而properties 表示动态信息元素,例如,使用复选框。
版权声明:本文博主原创文章,博客,未经同意不得转载。
jquery 访问控制菜单的更多相关文章
- jquery右键菜单
点击这里体验效果 如果要屏蔽页面原来的右键菜单,请设置disable_native_context_menu:true 以下是源代码: <!DOCTYPE html> <html&g ...
- Smint – 用于单页网站制作的 jQuery 导航菜单插件
Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮.Smint 使用非常简单,只有一个参数用于设置 ...
- jQuery实现菜单点击隐藏(上下左右)
canrun <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www. ...
- jquery实现菜单功能(单击展开或者关闭)-一般应用于后台
<!doctype html> <html> <head> <meta charset="gb2312"> <title> ...
- Jquery多级菜单插件Slimmenu使用说明
Jquery多级菜单插件Slimmenu使用说明 现在扁平化设计逐渐的成为了趋势,不管是pc web,还是移动互联网的应用开发,都在研究和设计Flat ui, 这里有一篇文章说明扁平化的设计的一些想法 ...
- jQuery手风琴菜单!!!!
jQuery手风琴菜单 第一次发博客也不知道说点什么好,以前敲得一个手风琴菜单刚刚整理出来了,就来分享个大家 手风琴的排版 排版完事了,接下来就写样式吧,把自己喜欢的颜色或者是图片添加进来,就会变成你 ...
- jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类
jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类 本例有另外2个关联案例,演示地址分别为2.php,3.php 演示 XML/HTML Code <div class="ar ...
- jquery树形菜单
转自:http://keleyi.com/dev/3068696139522ae4.htm 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1 ...
- 分享14个很酷的jQuery导航菜单插件
导航按钮是网站的非常重要的一部分,因其将网站的所有部分而集中一处,jQuery导航菜单插件在其中扮演重要的角色. 本文介绍了14个很酷的jQuery导航菜单插件,它们够漂亮.简单,并且完全兼容各种类型 ...
随机推荐
- js“分享到”侧边框伸缩实现
思路: 1,临界值是 -150 和 0 如果大于临界值,就要隐藏 2,隐藏:速度为负 显示:速度为正 3,如果与临界值相等,就清空定时器 否则,就运动 ------------------------ ...
- 最常用的动态sql语句梳理Mybatis(转)
公司项目中一直使用Mybatis作为持久层框架,自然,动态sql写得也比较多了,最常见的莫过于在查询语句中使用if标签来动态地改变过滤条件了.Mybatis的强大特性之一便是它的动态sql,免除了拼接 ...
- [LeetCode234]Palindrome Linked List
题目: Given a singly linked list, determine if it is a palindrome. 判断一个单链表是不是回文 思路: 1.遍历整个链表,将链表每个节点的值 ...
- 高榕资本宾悦:未使用的企业家Testin云测试服务类故障
高榕资本岳斌:创业者未使用Testin云測试服务属不合格 2014/10/09 · Testin · 开发人员訪谈 Testin云測与工信部等联合承办的ICT中国.2014高层论坛之移动开发人员分论坛 ...
- hdu 1226 BFS + bfs记录路径
http://acm.hdu.edu.cn/showproblem.php? pid=1226 为了节省空间.您可以使用vis初始化数组初始化-1. 发现BFSeasy错了地方 始一直WA在这里:就是 ...
- ThinkPad E530 Fedora 20 无线上网问题
它一直在使用 Fedora 家庭 Linux. 但它自带的无线网卡驱动似下一些问题,通常,有时连接,有时你不能. 经常搜索不到的家用无线路由器. 因为家里有网线所以一直没有在意.没什么事就折腾了一下. ...
- 【Git使用具体解释】EGit使用具体解释
此系列文章写给那些打算使用Git或正在使用Git,但对Git还不是非常理解的程序员们,希望能帮助大家在学习和使用Git的过程中少走弯路,并以最少的时间和代价来熟悉Git,让Git可以辅助很多其它的开发 ...
- 第四章——SQLServer2008-2012资源及性能监控(2) .
原文:第四章--SQLServer2008-2012资源及性能监控(2) . 本文接着上文继续,讲述如何监控CPU的使用情况 前言: CPU是服务器中最重要的资源.在数据库服务器中,CPU的使用情况应 ...
- SQL Server 连接问题-TCP/IP
原文:SQL Server 连接问题-TCP/IP 出自:http://blogs.msdn.com/b/apgcdsd/archive/2012/02/24/ms-sql-server-tcp-ip ...
- 使用一个T-SQL语句批量查询数据表占用空间及其行数
原文:使用一个T-SQL语句批量查询数据表占用空间及其行数 要找到数据库中数据表占用的空间和存在的行数.可以使用sp_spaceused搭配数据表的名称.就可以产生该表耗用的空间和现有行数. 如: U ...