jquery 访问控制菜单

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHpqOTExOA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

要实现的效果:

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 表示动态信息元素,例如,使用复选框。

版权声明:本文博主原创文章,博客,未经同意不得转载。

时间: 2024-11-02 23:33:38

jquery 访问控制菜单的相关文章

jQuery制作菜单

在网站的世界里,菜单是不可或缺的元素.菜单的作用主要是告诉用户网站的基本功能,引导用户完成一系列的功能操作.一个简洁明快的菜单,可以让用户很快接受并最终认可:相反,复杂无序的菜单只会让用户陷入迷茫,甚至因此被用户抛弃. 做网页设计,包括菜单的设计,都会用到一些基本的网页制作工具.以菜单为例,本文以下面两种形式实现菜单: 1.div + css + javascript 2.div + css + jQuery 这两种形式的主要区别是在实现菜单栏目点击响应时,分别采用了javascript和jQu

Jquery 右键菜单(ContextMenu)插件使用记录

目前做的项目需要在页面里面用右键菜单,在网上找到两种jquery的右键菜单插件,但是都有各种问题.所以就自己动手把两种插件结合了下. 修改后的右键菜单插架可以根据绑定的触发页面元素不同,复用同一个菜单使之根据触发页面元素有不同的行为.支持多个个触发页面元素复用同一个菜单时,分开禁用或恢复禁用菜单或某些菜单项目. 一些说明: 1.菜单的样式由css文件contextMenu.css决定,可以根据需要自行修改,请根据实际情况设定z-index的值,保证菜单在最高的一层 2.请将菜单直接放于body下

jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类

jQuery 二级菜单,一次显示一个小类 鼠标点击显示小类 本例有另外2个关联案例,演示地址分别为2.php,3.php 演示 XML/HTML Code <div class="arrowlistmenu"> <h3 class="menuheader expandable">表单</h3> <ul class="categoryitems"> <li><a href="

jquery树形菜单

转自:http://keleyi.com/dev/3068696139522ae4.htm 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&g

jQuery 滑动菜单效果

<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> </head> <style> *{ padding:0; margin:0; } ul,li{ list-style:none; } .nav{ height:30px; background:rg

[Jquery]导航菜单效果-纵向

$( document ).ready( function(e){ var $catCont = $( ".cat-cont" );    //二级菜单div    var $catList = $( ".J_Cat" );       //一级菜单li $catList.on( "mouseenter", function(){ var index = $( this ).index();        var $curCatList = $(

JQuery右键菜单插件

// JQuery右键菜单插件 $(function () { context.init({preventDoubleContext: false}); context.settings({compress: true}); context.attach('#chat-view', [ {header: '操作菜单',}, {text: '清理', action: clearConsole}, {divider: true}, { text: '选项', subMenu: [ {header:

雷林鹏分享:jQuery EasyUI 菜单与按钮 - 创建菜单按钮

jQuery EasyUI 菜单与按钮 - 创建菜单按钮(Menu Button) 菜单按钮(Menu Button)包含一个按钮(button)和一个菜单(menu)组件,当点击或移动鼠标到按钮上,将显示一个对应的菜单. 为了定义一个菜单按钮(Menu Button),您应该定义一个链接按钮(Link Button)和一个菜单(menu),下面是一个实例: Edit Help Undo Redo Cut Copy Paste Delete Select All Help Update Abou

雷林鹏分享:jQuery EasyUI 菜单与按钮 - 创建分割按钮

jQuery EasyUI 菜单与按钮 - 创建分割按钮(Split Button) 分割按钮(Split Button)包含一个链接按钮(Link Button)和一个菜单(Menu).当用户点击或者鼠标悬停在向下箭头区域,将会显示一个对应的菜单.本实例演示了如何创建和使用分割按钮(Split Button). 我们创建一个分割按钮(Split Button)和一个链接按钮(Link Button): Edit Undo Redo Cut Copy Paste Open Firefox Int