jQuery练习7——crm项目中的权限控制

这里写图片描述

需求分析:

  • 全选
  • 全不选
  • 以”客户管理”为例

    • 当选中”客户管理”的时候,所有子元素都被选中
    • 当不选中”客户管理”的时候,所有子元素都不被选中

    • 当任意一个子元素被选中的时候,”客户管理”也被选中

    • 当所有子元素都不被选中的时候,”客户管理”也不被选中
<legend><input type='checkbox' class='checkbox' name='menuModule' value='company,company' id='company_company' onClick='goSelect(this.id)' title="客户管理"  >客户管理
</legend>
<div><input type='checkbox' class='checkbox' name='menuModule' value='company,base' id='company_base' onClick='goSelect(this.id)'  title='客户拜访'>客户拜访</div>
<div><input type='checkbox' class='checkbox' name='menuModule' value='company,linkMan' id='company_linkMan' onClick='goSelect(this.id)' title='联系人列表'  >联系人列表</div>
<div><input type='checkbox' class='checkbox' name='menuModule' value='company,linkTouch' id='company_linkTouch' onClick='goSelect(this.id)' title='联系记录列表'  >联系记录列表</div>
<div><input type='checkbox' class='checkbox' name='menuModule' value='company,rule' id='company_rule' onClick='goSelect(this.id)' title='客户查重设置 '  >客户查重设置 </div>
  • 在HTML代码中,并不是父元素和子元素的结构

  • 以”客户管理”为例

    • id属性,都是以”company”开始的。利用选择器的时候,使用属性过滤选择器,[id^=company]可以找到所有”客户管理”的内容

    • id属性,只有”客户管理”是以”company”开始,以”company”结尾;以”company”开始,不以”company”结尾的就是”客户管理”的所有子元素

    • 通过goSelect(this.id)方法,可以获取到对应标签

    • 通过对应标签,获取到对应value属性的值。

      • 可以调用split()方法,把value属性的值切割成一个数组,改数组的长度为2,list[0],list[1]

      • 判断:

        • list[0]==list[1],说明获取到的是”客户管理”
        • list[0]!=list[1],说明获取到的是所有子元素
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>选择菜单</title>
<link href="style_cn.css" rel="stylesheet" type="text/css">
<script src="../js/jquery-1.4.2.js" type="text/javascript"></script>

<style type="text/css">
<!--
fieldset div {
    float:left;
    width:24%;
    text-align:left;
    line-height:25px;
}
td div {
    float:left;
    width:24%;
    text-align:left;
    line-height:25px;
}
-->
</style>
<script language="javascript">
    /*
      需求分析:
           * 全选
           * 全不选

           * 以"客户管理"为例

                 * 当选中"客户管理"的时候,所有子元素都被选中
                 * 当不选中"客户管理"的时候,所有子元素都不被选中

                 * 当任意一个子元素被选中的时候,"客户管理"也被选中
                 * 当所有子元素都不被选中的时候,"客户管理"也不被选中
     */


    /*
     * <legend><input type='checkbox' class='checkbox' name='menuModule' value='company,company' id='company_company' onClick='goSelect(this.id)' title="客户管理"  >客户管理
        </legend>
        <div><input type='checkbox' class='checkbox' name='menuModule' value='company,base' id='company_base' onClick='goSelect(this.id)'  title='客户拜访'>客户拜访</div>
        <div><input type='checkbox' class='checkbox' name='menuModule' value='company,linkMan' id='company_linkMan' onClick='goSelect(this.id)' title='联系人列表'  >联系人列表</div>
        <div><input type='checkbox' class='checkbox' name='menuModule' value='company,linkTouch' id='company_linkTouch' onClick='goSelect(this.id)' title='联系记录列表'  >联系记录列表</div>
        <div><input type='checkbox' class='checkbox' name='menuModule' value='company,rule' id='company_rule' onClick='goSelect(this.id)' title='客户查重设置 '  >客户查重设置 </div>

           * 在HTML代码中,并不是父元素和子元素的结构

           * 以"客户管理"为例

              * id属性,都是以"company"开始的。利用选择器的时候,使用属性过滤选择器,[id^=company]可以找到所有"客户管理"的内容

              * id属性,只有"客户管理"是以"company"开始,以"company"结尾;以"company"开始,不以"company"结尾的就是"客户管理"的所有子元素

              * 通过goSelect(this.id)方法,可以获取到对应标签

              * 通过对应标签,获取到对应value属性的值。

                  * 可以调用split()方法,把value属性的值切割成一个数组,改数组的长度为2,list[0],list[1]

                  * 判断:
                      * list[0]==list[1],说明获取到的是"客户管理"
                      * list[0]!=list[1],说明获取到的是所有子元素

     */



    function goSelect(id){
        var $menuModule = $("#" + id);

        var value = $menuModule.val();

        var list = value.split(",")

        if(list[0]==list[1]){
            //操作的是"客户管理"

            if($menuModule.attr("checked")){
                //* 当选中"客户管理"的时候,所有子元素都被选中
                $("input[id^="+list[0]+"]:not([id$="+list[0]+"])").attr("checked","checked");
            }else{
                //* 当不选中"客户管理"的时候,所有子元素都不被选中
                $("input[id^="+list[0]+"]:not([id$="+list[0]+"])").attr("checked",null);
            }
        }else{
            //操作的是所有子元素

            //* 当任意一个子元素被选中的时候,"客户管理"也被选中
            if($menuModule.attr("checked")){
                $("input[id^="+list[0]+"][id$="+list[0]+"]").attr("checked","checked");
            }
            //* 当所有子元素都不被选中的时候,"客户管理"也不被选中
            var flag = false;

            $("input[id^="+list[0]+"]:not([id$="+list[0]+"])").each(function(index,domEle){

                if($(domEle).attr("checked")){
                    flag = true;
                }

            });

            if(!flag){
                $("input[id^="+list[0]+"][id$="+list[0]+"]").attr("checked",null);
            }
        }
    }




</script>
</head>
<body>
<form name="ActionForm" method="post" action="/webcrm0527/sys/sysRoleAction_set.do">
<input type="hidden" name="method" value="updateMenu">
<input type="hidden" name="roleId" value="402881e42ab919a5012ab91a0b110001">
<br/>
<div class="control">
    <button type='button' class='button' onMouseOver="this.className='button_over';" onMouseOut="this.className='button';" 
            onClick="SelectAllBox()">
            <img src="./button/quanbuxz.png" border='0' 
            align='absmiddle'>&nbsp;全部选中</button>
    <button type='button' class='button' onMouseOver="this.className='button_over';" onMouseOut="this.className='button';"  
            onClick="UnSelectAllBox()">
            <img src="./button/quanbubxz.png" border='0' 
            align='absmiddle'>&nbsp;全部不选中</button>
    <button type='button' class='button' onMouseOver="this.className='button_over';" onMouseOut="this.className='button';"  
            onClick="document.ActionForm.submit();">
            <img src="./button/baocun.png" border='0' 
            align='absmiddle'>&nbsp;保存</button>
    <button type='button' class='button' onMouseOver="this.className='button_over';" onMouseOut="this.className='button';"  
            onClick="parent.close();">
            <img src="./button/guanbi.png" border='0' 
            align='absmiddle'>&nbsp;关闭</button>
</div>
<table width="100%" border="0" cellpadding="0" cellspacing="0" bgcolor="#6A82A8">
    <tr>
        <td align="center" height="25"><span style="color:#FFFFFF; font-weight:bold">操作权限组:人力资源部权限组</span></td>
    </tr>
</table>
<div class="border" style="padding:3px">

<table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
        <td>
         <fieldset style='padding:5px;clear:left;'>
              <legend><input type='checkbox' class='checkbox' name='menuModule' value='company,company' 
                       id='company_company' onClick='goSelect(this.id)' 
                        title="客户管理"  >客户管理
              </legend>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='company,base'
                                id='company_base' onClick='goSelect(this.id)' 
                                title='客户拜访'>客户拜访</div>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='company,linkMan'
                                id='company_linkMan' onClick='goSelect(this.id)' 
                                title='联系人列表'  >联系人列表</div>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='company,linkTouch'
                                id='company_linkTouch' onClick='goSelect(this.id)' 
                                title='联系记录列表'  >联系记录列表</div>

                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='company,rule'
                                id='company_rule' onClick='goSelect(this.id)' 
                                title='客户查重设置 '  >客户查重设置 </div>

       </fieldset>

         <fieldset style='padding:5px;clear:left;'>
              <legend><input type='checkbox' class='checkbox' name='menuModule' value='sys,sys' 
                       id='sys_sys' onClick='goSelect(this.id)' 
                        title="系统设置 "  
                         >系统设置 
              </legend>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='sys,group'
                                id='sys_group' onClick='goSelect(this.id)' 
                                title='部门设置' 
                                >部门设置</div>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='sys,user'
                                id='sys_user' onClick='goSelect(this.id)' 
                                title='人事管理'  >人事管理</div>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='sys,role'
                                id='sys_role' onClick='goSelect(this.id)' 
                                title='操作权限组' >操作权限组</div>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='sys,province'
                                id='sys_province' onClick='goSelect(this.id)' 
                                title='省份资料' >省份资料</div>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='sys,city'
                                id='sys_city' onClick='goSelect(this.id)' 
                                title='城市资料' >城市资料</div>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='sys,code'
                                id='sys_code' onClick='goSelect(this.id)' 
                                title='编码规则' >编码规则</div>

       </fieldset>

         <fieldset style='padding:5px;clear:left;'>
              <legend><input type='checkbox' class='checkbox' name='menuModule' value='report,report' 
                       id='report_report' onClick='goSelect(this.id)' 
                        title="报表与分析" >报表与分析
              </legend>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='report,khflfx'
                                id='report_khflfx' onClick='goSelect(this.id)' 
                                title='客户分类分析 ' >客户分类分析 </div>
                    <div><input type='checkbox' class='checkbox' name='menuModule' 
                         value='report,khfx'
                                id='report_khfx' onClick='goSelect(this.id)' 
                                title='客户分析 ' >客户分析 </div>
       </fieldset>
</td>
    </tr>
</table>

</div>
</form>
</body>
</html>
好的,关于 jQuery 的事件,我可以和你分享一些学习笔记。 1. 绑定事件 在 jQuery ,我们可以通过以下方式来绑定事件: ``` $(selector).event(function(){ // 事件处理程序 }) ``` 其,`selector` 表示要绑定事件的元素,`event` 表示要绑定的事件类型,比如 `click`、`mouseover` 等等。事件处理程序则是在事件触发要执行的代码块。 2. 多个事件绑定 我们可以通过 `on()` 方法来同绑定多个事件: ``` $(selector).on({ event1: function(){ // 事件处理程序1 }, event2: function(){ // 事件处理程序2 } }) ``` 这样,当 `event1` 或 `event2` 任意一个事件触发,对应的处理程序都会被执行。 3. 解除事件 如果需要解除某个元素的事件处理程序,可以使用 `off()` 方法: ``` $(selector).off(event); ``` 其,`event` 表示要解除的事件类型。如果不指定事件类型,则会解除该元素上所有的事件处理程序。 4. 事件委托 在 jQuery ,我们可以使用事件委托来提高性能。事件委托是指将事件绑定到父元素上,而不是绑定到子元素上,然后通过事件冒泡来判断是哪个子元素触发了该事件。这样,当子元素数量较多,只需要绑定一次事件,就可以监听到所有子元素的事件。 ``` $(selector).on(event, childSelector, function(){ // 事件处理程序 }) ``` 其,`selector` 表示父元素,`event` 表示要绑定的事件类型,`childSelector` 表示要委托的子元素的选择器,事件处理程序则是在子元素触发事件要执行的代码块。 以上是 jQuery 事件的一些基本操作,希望对你有所帮助。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值