经常使用的jquery公用common.js总结

Posted loong-hon

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经常使用的jquery公用common.js总结相关的知识,希望对你有一定的参考价值。

/*解决ie8中js数组没有indexOf方法*/

jQuery.extend(
    exportResport : function(url, method, params)
        var paramControl = ‘<form action="‘+url+‘" method="‘+(method||‘post‘)+‘">‘ ;
        $.each(params,function(name,value)
            paramControl += ‘<input type="text" name="‘+name+‘" value="‘+value+‘"/>‘;
        );
        paramControl += ‘</form>‘;
        jQuery(paramControl).appendTo(‘body‘).submit().remove();
    ,//下载文件,主要用于导出报表
    getJSONNoCache: function (url,type, data,dataType,traditional, callback,failCallback) 
        $.ajax(
            url: url,
            type:type ||"GET",          
            dataType: dataType||‘json‘,
            data: data,
            cache: false,
            traditional:traditional,   //发送数组时该属性设为ture,否则服务端接收不到
            success: callback,
            error:failCallback
        );
    ,    //一般ajax请求,不用设置contentType
    getJSONAsync: function (url,type, data,dataType,traditional, callback,failCallback) 
        $.ajax(
            url: url,
            type:type ||"GET",    
            async: false,
            dataType: dataType||‘json‘,
            data: data,
            cache: false,
            traditional:traditional,   //发送数组时该属性设为ture,否则服务端接收不到
            success: callback,
            error:failCallback
        );
    ,    //发送同步ajax请求
    getWithContentType: function (url,type, data,contentType,dataType,traditional, callback,failCallback) 
        $.ajax(
            url: url,
            type:type ||"GET",          
            dataType: dataType||‘json‘,
            contentType:contentType,
            data: data,
            cache: false,
            traditional:traditional,   //发送数组时该属性设为ture,否则服务端接收不到
            success: callback,
            error:failCallback
        );  //需要设置contentType,且一般为application/json
    ,
    getWithTimeOut: function (url,type, data,dataType,timeout, callback,failCallback) 
        $.ajax(
            url: url,
            type:type ||"GET",          
            dataType: dataType||‘json‘,         
            data: data,
            cache: false,
            timeout:timeout,
            success: callback,
            error:failCallback
        );  //  带有timeout超时控制的ajax请求
    ,
    /// totalCount:总记录数 ;  current_page:当前索引 (从0开始); items_per_page:每页显示多少条;callback:回调函数   
    pagination:function(totalCount,current_page,items_per_page,callback)
        $("#pagination").pagination(totalCount, 
            num_edge_entries: 3, //边缘页数
            num_display_entries: 4, //主体页数
            current_page:current_page,
            items_per_page:items_per_page, //每页显示10项
            prev_text: "<<",
            next_text: ">>",
            callback:callback         
                    
        );
        
     ,//分页  
    isValid:function(valControl)        
        var inputVal=$.trim(valControl.value);
        if($(valControl).is(".txt-required") && inputVal=="" )
                            
                return false;
            
        if($(valControl).is(".num"))
            
                if(!window.formValidate.matchNum(inputVal))
                                    
                    return false;
                
            
        if($(valControl).is(‘.floatNum‘))
            
                if(window.formValidate.matchNum(inputVal))
                    
                        return true;
                    
                if(!window.formValidate.matchFloat(inputVal))
                    
                        return false;
                    
                 
        if($(valControl).is(".txtEmail"))  //邮箱输入框
        
            if(!window.formValidate.matchEmail(inputVal))
                                    
                    return false;
                                        
        
       if($(valControl).is(".txtTel"))  //联系电话输入框
        
            if(!window.formValidate.matchTel(inputVal))
                            
                return false;
                                    
        
       if($(valControl).is(".txtPhone"))  //联系电话输入框
        
            if(!window.formValidate.matchPhone(inputVal))
                            
                return false;
                                    
        
        if($(valControl).is(".txtQQ"))  //qq输入框
        
            if(!window.formValidate.matchQQ(inputVal))
                            
                return false;
                                    
        
      if($(valControl).is(".txtPostCode"))  //邮政编码输入框
        
            if(!window.formValidate.matchPostCode(inputVal))
                            
                return false;
                                    
        
      if($(valControl).is(".txCheckColumn"))  //用户名输入框
        
            if(!window.formValidate.matchCheckColumn(inputVal))
                            
                return false;
                                    
        
    
    return true;    
      //表单元素验证
);
var formValidate=
        emailReg:/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/,  //邮箱
        postCodeRegex: /^[0-9][0-9]5$/,   //邮政编码
        qqRegex: /^[1-9]*[1-9][0-9]*$/,   //qq
        telRegex: /^[\\(\\)-.0-9\u0020\u3000]*$/,      //电话号码
        phoneRegex: /^[0-9]11$/,   //手机号
        telAndPhoneRegex:/^((0\d2,3-\d7,8)|(1[34578]\d9))$/, //手机或固话
        numRegex:/^\d*$/,  //正整数
        floatNumRegex:/^\d+\.\d+$/,   //正小数
        userNameRegex:/^[\u4E00-\u9FA5A-Za-z0-9_]+$/, //中文、英文、数字包括下划线
        isEmpty:function(val)
        
            return val=="" || val==null || $.trim(val)=="";
        , //是否为空
        matchEmail:function(val)
        
            return  this.emailReg.test(val);
        ,  //是否符合邮箱格式
        isEqual:function(val1, val2)
        
            return val1==val2;
        , //两个值是否相等
        matchQQ:function(val)
        
            return this.qqRegex.test(val);
         ,  //是否符合qq格式
        matchTel:function(val)
        
            return this.telAndPhoneRegex.test(val);
         ,  //是否符合电话号码格式
        matchPhone:function(val)
        
            return this.telAndPhoneRegex.test(val);
         ,  //是否符合手机号格式
        matchPostCode:function(val)
        
            return  this.postCodeRegex.test(val);
        ,   //是否符合邮政编码格式
        matchCheckColumn:function(val)
        
            return  this.userNameRegex.test(val);
        ,   //是否符合用户名格式
        matchNum:function(val)
        
            return this.numRegex.test(val);
         , //验证数字
        matchFloat:function(val)
        
            return  this.numRegex.test(val)==true || this.floatNumRegex.test(val)==true;
          , //验证浮点数
        matchFileName:function(val)
        
            return  /^\./.test(val)==false && /[/\:*?"<>|]/g.test(val)==false
          //匹配文件名

;   //form验证
//日期比较  
function dateCompare(startdate,enddate)   
   
    var arr=startdate.split("-");    
    var starttime=new Date(arr[0],arr[1],arr[2]);    
    var starttimes=starttime.getTime();   
      
    var arrs=enddate.split("-");    
    var lktime=new Date(arrs[0],arrs[1],arrs[2]);    
    var lktimes=lktime.getTime();   
      
    if(starttimes>lktimes)    
       
        return false;   
       
    else  
        return true;   
  
  
/* 获取某月天数*/
function getMonthDays(myMonth) 
    var now=new Date();
    var nowYear=now.getYear();
    var monthStartDate = new Date(nowYear, myMonth, 1); 
    var monthEndDate = new Date(nowYear, myMonth + 1, 1); 
    var days = (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24); 
    return days; 
 
/*获得本天  */
function getToday()     
    return formatDate(new Date()); 

//获得本周的开端日期   (周一)
function getWeekStartDate() 
    var now=new Date();
    var nowYear=now.getFullYear();
    var nowMonth = now.getMonth(); //当前月 
    var nowDay = now.getDate(); //当前日
    var nowDayOfWeek = now.getDay(); //今天本周的第几天 
    var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek+1); 
    return formatDate(weekStartDate); 

//获得本周的停止日期   (周日)
function getWeekEndDate()  
    var now=new Date();
    var nowYear=now.getFullYear();
    var nowMonth = now.getMonth(); //当前月 
    var nowDay = now.getDate(); //当前日
    var nowDayOfWeek = now.getDay(); //今天本周的第几天     
    var weekEndDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek)); 
    return formatDate(weekEndDate); 
 
//获得本月的开端日期 
function getMonthStartDate() 
    var now=new Date();
    var nowYear=now.getFullYear();
    var nowMonth = now.getMonth(); //当前月     
    var monthStartDate = new Date(nowYear, nowMonth,1); 
    return formatDate(monthStartDate); 
 
//获得本月的停止日期 
function getMonthEndDate() 
    var now=new Date();
    var nowYear=now.getFullYear();
    var nowMonth = now.getMonth(); //当前月
    var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth)); 
    return formatDate(monthEndDate); 
 
//获得本季度的开端日期
function getSeasonStartDate()

    var now=new Date();
    var nowYear=now.getFullYear();
    return formatDate(new Date(nowYear,getQuarterStartMonth(now.getMonth()),1));

//获得本季度的停止日期
function getSeasonEndDate()

    var now=new Date();
    var nowYear=now.getFullYear();
    var month=getQuarterStartMonth(now.getMonth())+2;
    return formatDate(new Date(nowYear,month,getMonthDays(month)));

function getQuarterStartMonth(nowMonth)

    var quarterStartMonth = 0;     
    if(nowMonth<3)     
       quarterStartMonth = 0;     
         
    if(2<nowMonth && nowMonth<6)     
       quarterStartMonth = 3;     
         
    if(5<nowMonth && nowMonth<9)     
       quarterStartMonth = 6;     
         
    if(nowMonth>8)     
       quarterStartMonth = 9;     
         
    return quarterStartMonth;  

//获得本年的开端日期
function getYearStartDate()

    var now=new Date();
    var nowYear=now.getFullYear();
    return formatDate(new Date(nowYear,0,1));

//获得本年的停止日期
function getYearEndDate()

    var now=new Date();
    var nowYear=now.getFullYear();    
    return formatDate(new Date(nowYear,11,31));

//获得前n天的日期
function getBeforeDate(n)
    var n = n;
    var d = new Date();
    var year = d.getFullYear();
    var mon=d.getMonth()+1;
    var day=d.getDate();
    if(day <= n)
            if(mon>1) 
               mon=mon-1;
            
           else 
             year = year-1;
             mon = 12;
             
           
          d.setDate(d.getDate()-n);
          year = d.getFullYear();
          mon=d.getMonth()+1;
          day=d.getDate();
     s = year+"-"+(mon<10?(‘0‘+mon):mon)+"-"+(day<10?(‘0‘+day):day);
     return s;

/*格式化日期  yyyy-MM-dd */
function formatDate(date)

    return date.getFullYear()+‘-‘+(date.getMonth()+1)+‘-‘+date.getDate();

/*返回昨天日期   yyyy-MM-dd   */
function formatYesterday()

    var now=new Date();
    now.setTime(now.getTime()-1000* 60 * 60 * 24);
    return now.getFullYear()+‘-‘+(now.getMonth()+1)+‘-‘+now.getDate();


/*返回日期差   yyyy-MM-dd   */
function calculateDays(fromStr,toStr,isWorkDay) 
    var from = new Date(); 
    var to = new Date(); 
    var fromTime = Date.parse(fromStr.replace(/\-/g,"/")); 
    var toTime = Date.parse(toStr.replace(/\-/g,"/"));

    from.setTime(fromTime); 
    from.setHours(0); 
    from.setMinutes(0); 
    from.setSeconds(0);

    to.setTime(toTime); 
    to.setHours(0); 
    to.setMinutes(0); 
    to.setSeconds(0); 
    if(from.getTime() > to.getTime()) 
        return 0; 
    

    // 把起始日都修正到星期六 javascript的星期从0开始,所以+1来处理
    var sDayofWeek = from.getDay()+1; 
    var workdays=0;

    // 修正到星期六之后,再修正多出来的非假日
    if(sDayofWeek > 1 && sDayofWeek < 7)
    
        from.setDate(from.getDate()-(sDayofWeek%7)); 
        workdays-=((sDayofWeek-2)>0)?sDayofWeek-2:0; 
    

    // 计算两个日期之间的天数
    var totalDays = (to.getTime()-from.getTime())/(1000*60*60*24)+1; 
    if(!isWorkDay)
        return totalDays;
    
    workdays+=Math.floor(totalDays/7)*5;

    // 修正最后剩余天数
    if((totalDays%7-2)>0) 
        workdays+=(totalDays%7-2); 
     
    return workdays




/* 显示弹出框中的错误信息 */
function setCookie(name,value,expires)

    document.cookie=name+‘=‘+value+‘;expires=‘+expires;

function showErrorMsg(container,msg)

    var  scroller=container.parent(), error,firstBtn;
    if(scroller.is(‘.slimScrollDiv‘))
        
            error=scroller.next().find(‘#sp-error‘);
            firstBtn=scroller.next().children(‘.ui-dialog-buttonset‘).children(‘button:first‘);
        
    else
        
            error=container.next().find(‘#sp-error‘);
            firstBtn=container.next().children(‘.ui-dialog-buttonset‘).children(‘button:first‘);
        
    if(error.length==0)
        
            firstBtn.before("<span id=‘sp-error‘ class=‘sp-error‘>"+msg+"</span>");
        
    else
        
             error.text(msg);
        

/* 公共的信息提示框*/
var commonInfoDialog=function()
    return 
        infoDialog:null,
        init:function(options)
            var defaultOptions=
                closeHandler:null,
                okHandler:null
            ;
            $.extend(defaultOptions,options);
            this.infoDialog=$(‘#common-info-dialog‘);
            if(this.infoDialog.length==0)
                
                    this.infoDialog=$(‘<div id="common-info-dialog"></div>‘);
                
            this.infoDialog.dialog(                    
                autoOpen:false,
                title:‘提示‘,
                dialogClass:‘ui-dialog-blue  ui-dialog-boxshadow‘,
                modal:true,        
                resizable:false,
                close:function()
                    $(this).dialog(‘destroy‘);
                    if(defaultOptions.closeHandler)
                        
                            defaultOptions.closeHandler();    
                        
                ,
                buttons:[
                    ‘class‘:‘btn blue‘,
                    ‘id‘:‘commonInfo‘,
                    ‘text‘:‘确定‘,
                    ‘click‘:function()
                        $(this).dialog(‘close‘);
                        if(defaultOptions.okHandler)
                            
                                defaultOptions.okHandler();    
                            
                    
                    
                ]
            );
            return this.infoDialog;
        ,
        show:function()
            this.infoDialog.dialog(‘open‘);
                
    ;
();
/* 公共的信息确认框*/
var commonConfirmDialog=function()
    return 
        infoDialog:null,
        init:function(options)
            var defaultOptions=
                closeHandler:null,
                okHandler:null,
                cancelHandler:null
            ;
            $.extend(defaultOptions,options);
            this.infoDialog=$(‘#common-info-dialog‘);
            if(this.infoDialog.length==0)
                
                    this.infoDialog=$(‘<div id="common-info-dialog"></div>‘);
                
            this.infoDialog.dialog(
                autoOpen:false,
                title:‘确认‘,
                dialogClass:‘ui-dialog-blue  ui-dialog-boxshadow‘,
                resizable:false,
                modal:true,        
                close:function()
                    $(this).dialog(‘destroy‘);
                    if(defaultOptions.closeHandler)
                        
                            defaultOptions.closeHandler();    
                        
                ,
                buttons:[
                    ‘class‘:‘btn blue‘,
                    ‘text‘:‘确定‘,
                    ‘click‘:function()
                        $(this).dialog(‘close‘);
                        if(defaultOptions.okHandler)
                            
                                defaultOptions.okHandler();    
                            
                    
                    
                ,
                    ‘class‘:‘btn‘,
                    ‘text‘:‘取消‘,
                    ‘click‘:function()
                        $(this).dialog(‘close‘);
                        if(defaultOptions.cancelHandler)
                            
                                defaultOptions.cancelHandler();    
                            
                    
                    
                ]
            );
            return this.infoDialog;
        ,
        show:function()
            this.infoDialog.dialog(‘open‘);
            
    ;
();
var App=function()
    return 
        //收缩、展开
        handlePortletTools:function ()    
            jQuery(‘body‘).on(‘click‘, ‘.portlet .tools .collapse, .portlet .tools .expand‘, function (e) 
                e.preventDefault();
                    var el = jQuery(this).closest(".portlet").children(".portlet-body");
                    if (jQuery(this).hasClass("collapse")) 
                        jQuery(this).removeClass("collapse").addClass("expand");
                        el.slideUp(200);
                     else 
                        jQuery(this).removeClass("expand").addClass("collapse");
                        el.slideDown(200);
                    
            );
        ,
          // wrapper function to  block element(indicate loading)
        blockUI: function (el, centerY) 
            var el = jQuery(el); 
            el.block(
                    message: ‘<img src="../resources/images/loading.gif" align="">‘,
                    centerY: centerY != undefined ? centerY : true,
                    css: 
                        top: ‘10%‘,
                        border: ‘none‘,
                        padding: ‘2px‘,
                        backgroundColor: ‘none‘
                    ,
                    overlayCSS: 
                        backgroundColor: ‘#000‘,
                        opacity: 0.05,
                        cursor: ‘wait‘
                    
                );
        ,
        blockUINoMsg:function (el, centerY) 
            var el = jQuery(el); 
            el.block(
                    message: ‘‘,
                    centerY: centerY != undefined ? centerY : true,
                    css: 
                        top: ‘10%‘,
                        border: ‘none‘,
                        padding: ‘2px‘,
                        backgroundColor: ‘none‘
                    ,
                    overlayCSS: 
                        backgroundColor: ‘#000‘,
                        opacity: 0.05,
                        cursor: ‘normal‘
                    
                );
        ,

        // wrapper function to  un-block element(finish loading)
        unblockUI: function (el) 
            jQuery(el).unblock(
                    onUnblock: function () 
                        jQuery(el).removeAttr("style");
                    
                );
                
    ;
();

//为IE8增加数组的indexOf方法
if (!Array.prototype.indexOf)

  Array.prototype.indexOf = function(elt /*, from*/)
  
    var len = this.length >>> 0;  
     var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len; 
     for (; from < len; from++)
    
      if (from in this &&
          this[from] === elt)
        return from;
    
    return -1;
  ;

 

//替换URL参数中可能会出现的特殊字符
var replaceSpeciChaInReq=function(key)
    var replacedArr=[
                [‘%‘,‘%25‘],
                 [‘\\+‘,‘%2B‘],
                 [‘ ‘,‘%20‘],
                 [‘/‘,‘%2F‘],
                 [‘\\?‘,‘%3F‘],
                 [‘#‘,‘%23‘],
                 [‘&‘,‘%26‘],
                 [‘=‘,‘%3D‘],
                 [‘<‘,‘&lt;‘],
                 [‘>‘,‘&gt;‘]
             ],reg=‘‘;
    for(var i=0;i<replacedArr.length;i++)
         reg=new RegExp(replacedArr[i][0],"g");
        key=key.replace(reg,replacedArr[i][1]);
    
    return key;


//替换json参数中可能会出现的特殊字符 只处理尖括号防止script脚本
var replaceJsonChaInReq=function(key)
    var replacedArr=[                
                 [‘<‘,‘&lt;‘],
                 [‘>‘,‘&gt;‘]
             ],reg=‘‘;
    for(var i=0;i<replacedArr.length;i++)
         reg=new RegExp(replacedArr[i][0],"g");
        key=key.replace(reg,replacedArr[i][1]);
    
    return key;


//获取Cookie
function getCookie(name) 
 
    var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
    if(arr=document.cookie.match(reg))
        return unescape(arr[2]); 
    else 
        return null; 




//部门员工选择的工具  
$.fn.orgUserChooser=function()
    var dom=this;
    //添加人员    checkboxes:待添加的;   choosen:已被添加的;  unChosenOrgId:待添加的授权人机构Id;  isCheckedAll:是否全选
    var addAuthorizer=function(checkboxes,choosen,unChosenOrgId, isCheckedAll)
        
        var chosenArea=dom.find(".chosenAuthorizers");
        var chooseArea=dom.find(".orgUserchooseArea");
        var str=‘‘,
        userTemp=chosenArea.find(‘li‘).eq(0).get(0).outerhtml,//用户被选中的HTML模板
        classifyTemp=chosenArea.find(‘li‘).eq(1).get(0).outerHTML,//机构被选中的HTML模板
        unChosenUserId,//
        isChoosen=false;//
        if(isCheckedAll)//如果是全选的话加入部门
            var depart=chooseArea.find(".customDropdown.department .dropdown-menu span[data-orgid="+unChosenOrgId+"]");
            str +=classifyTemp.replace(/classifyId/,unChosenOrgId).replace(/hide/,‘‘).replace(/classifyName/,$.trim(depart.html())+‘全部用户‘);
            if(choosen.length>0)
                for(var j=0,k=choosen.length-1;j<=k;j++)
                                                            
                    if(($(choosen[j]).data(‘type‘)=="user"&&$(choosen[j]).data(‘orgid‘)==unChosenOrgId)||($(choosen[j]).data(‘type‘)=="classify"&&$(choosen[j]).data(‘classifyid‘)==unChosenOrgId))
                                    
                            $(choosen[j]).remove();
                        
                
            
        else
            for(var i=0, l=checkboxes.length;i<l;i++)
                
                    unChosenUserId=$(checkboxes[i]).data(‘userid‘);
                    isChoosen=false;
                    if(choosen.length>0)
                                        
                            for(var j=0,k=choosen.length-1;j<=k;j++)
                                                                            
                                    if($(choosen[j]).data(‘type‘)=="user"&&$(choosen[j]).data(‘userid‘)==unChosenUserId)
                                                                                            
                                            isChoosen=true;
                                            break;                                            
                                        
                                
                            if(!isChoosen)    //未被选中时
                            
                                str+=userTemp.replace(/orgId/,unChosenOrgId).replace(/userId/,unChosenUserId).replace(/hide/,‘‘).replace(/userName/,$.trim($(checkboxes[i]).parents(‘label‘).text()));
                            
                        
                    else
                        
                            str+=userTemp.replace(/orgId/,unChosenOrgId).replace(/userId/,unChosenUserId).replace(/hide/,‘‘).replace(/userName/,$.trim($(checkboxes[i]).parents(‘label‘).text()));
                        
                    
                
        
        chosenArea.children(‘ul‘).append(str);
    ;   //添加授权人员   
    
     //删除授权人员    checkboxes:待删除的;   choosen:已被添加的;    unChosenOrgId:已被添加的
    var removeAuthorizer=function(checkboxes,choosen, unChosenOrgId,otherCheckbox)
        
        var chosenArea=dom.find(".chosenAuthorizers");
        var chooseArea=dom.find(".orgUserchooseArea");
        var unChosenUserId;
        var haveToRemove=true;
        for(var i=choosen.length-1;i>=0;i--)
        
            if($(choosen[i]).data(‘type‘)=="classify" && $(choosen[i]).data(‘classifyid‘)==unChosenOrgId)
                                                                    //查看是否有classifyid为unChosenOrgId的部门 有就去掉 加入所有otherCheckbox里边选中的
                    haveToRemove=false;
                    $(choosen[i]).remove();
                    var str=‘‘,userTemp=chosenArea.find(‘li‘).eq(0).get(0).outerHTML;
                    for (var j = 0; j < otherCheckbox.length; j++) 
                        var curCheck=$(otherCheckbox[j]).find(":checkbox");
                        if(curCheck.is(‘:checked‘))
                            chosenArea.children(‘ul‘).append(userTemp.replace(/orgId/,unChosenOrgId).replace(/userId/,curCheck.data(‘userid‘)).replace(/hide/,‘‘).replace(/userName/,$.trim(curCheck.parents(‘label‘).text())));
                        
                    
                    break;
                
        
        if(haveToRemove)
            for(var i=checkboxes.length-1;i>=0;i--)
            
                unChosenUserId=$(checkboxes[i]).data(‘userid‘);
                for(var j=choosen.length-1;j>=0;j--)
                                                            
                        if($(choosen[j]).data(‘userid‘)==unChosenUserId)
                                                                                
                                $(choosen[j]).remove();
                                break;
                            
                    
                
            
        
    ;  //删除授权人员    checkboxes:待删除的;   choosen:已被添加的;
    var init=function()
        
        //点击选择按钮,将选择控件打开
        dom.on(‘click‘,‘#chooseCateHref‘,function(e)
            dom.find(".orgUserchooseArea").toggle();
            e.stopPropagation ?e.stopPropagation():(e.cancelBubble=true);
        );
        
        //点击顶部自定义下拉框区域的下拉按钮显示选择区域
        dom.on(‘click‘,‘.dropdown-top‘,function(e)
            var customDropdown=$(this).parent();
            customDropdown.toggleClass(‘active‘);
            customDropdown.is(‘.department.active‘) && (customDropdown.next().addClass(‘active‘)); 
            e.stopPropagation ?e.stopPropagation():(e.cancelBubble=true);
        );   
        
        //点击部门下拉框的区域,显示其用户
        dom.on(‘click‘,‘.department>.dropdown-menu span‘,function(e)
            $(this).parents(‘.dropdown-menu‘).find(‘span‘).removeClass(‘curr‘);
            $(this).addClass(‘curr‘).parents(‘.department‘).children(‘.dropdown-top‘).children(‘.sp-txt‘).text($(this).text());
            $(‘.people‘).addClass(‘active‘);
            var orgId=$(this).data(‘orgid‘);
            $(‘.people>.dropdown-menu>ul‘).filter(‘[data-orgid=‘+orgId+‘]‘).removeClass(‘hide‘).siblings().addClass(‘hide‘);
            e.stopPropagation ?e.stopPropagation():(e.cancelBubble=true);
        );   
        
        //点击人选选择复选框
        dom.on(‘change‘,‘.people :checkbox‘,function()
            var chosenArea=dom.find(".chosenAuthorizers");
            var chosen=chosenArea.find(‘li‘).not(‘.hide‘),unChosenOrgId=$(this).parents(‘ul‘).data(‘orgid‘),checkboxes=$(this);
            $(this).is(‘.checkAll‘) && (checkboxes=$(this).parents(‘ul‘).find(‘.checkboxes‘).prop(‘checked‘,$(this).prop(‘checked‘)).uniform());        
            var checkAll=$($(this).closest(‘li‘).siblings()[0]).find(‘:checkbox‘);    
            var otherCheckbox=$(this).closest(‘li‘).siblings().not(‘:first‘);
            if($(this).is(‘:checked‘))   //添加
                
                    !checkAll.is(‘:checked‘)&& !$(this).is(‘.checkAll‘) && otherCheckbox.find(‘:checkbox‘).length==otherCheckbox.find(‘:checked‘).length && (checkAll.prop(‘checked‘,true).uniform());
                    addAuthorizer(checkboxes,chosen,unChosenOrgId,checkAll.is(‘:checked‘));

                
            else                   //移除
                
                    
                    checkAll.is(‘:checked‘)&& !$(this).is(‘.checkAll‘) && checkAll.removeAttr(‘checked‘).uniform();
                    removeAuthorizer(checkboxes,chosen,unChosenOrgId,otherCheckbox);
                
        );   //部门-人员级联
        
        //点击已选的删除按钮
        dom.on(‘click‘,‘.chosenAuthorizers .choice-close‘,function(e)
            var userId=$(this).parent().data(‘userid‘);
            if(userId)//删除的是一个用户
                $(‘.people :checked‘).each(function()
                    if($(this).data(‘userid‘)==userId)
                        
                            $($(this).removeAttr(‘checked‘).uniform().parents(‘.fl‘).children()[0]).find(‘input‘).removeAttr(‘checked‘).uniform();
                            return;
                        
                );
            else//删除的是一个部门的所有用户
                var classifyid=$(this).parent().data(‘classifyid‘);
                $(‘.people ul‘).each(function()
                    if($(this).data(‘orgid‘)==classifyid)
                        
                            $(this).find(":checked").removeAttr(‘checked‘).uniform();
                            return;
                        
                );
                
            
            $(this).parent().remove();
            e.stopPropagation ?e.stopPropagation():(e.cancelBubble=true);
        );
        $(document).bind(‘click‘,function(e)
             var e = e || window.event; //浏览器兼容性
                var elem = e.target || e.srcElement;
                while (elem)  //循环判断至跟节点,防止点击的是div子元素
                    if ($(elem).is(‘.customDropdown‘) || $(elem).is(‘.chosenAuthorizers‘)) 
                        return;
                    
                    elem = elem.parentNode;
                
                dom.find(‘.choose‘).hide().children().removeClass(‘active‘);                     
       );
    ();

 

以上是关于经常使用的jquery公用common.js总结的主要内容,如果未能解决你的问题,请参考以下文章

ECSHOP的JS文件代入问题

JQuery 总结 锋利的jQuery

关于common.js里面的module.exports与es6的export default的思考总结

个人css公用属性

jquery手机端带农历的万年历插件

Vue+Vant中van-list请求数据(数据请求调用公用方法)