jquery相关 及通用ajax

jquery判断对象是否获得焦点

var isFocus=$("#tRow").is(":focus");  
    if(true==isFocus){  
        alert("focus");  
    }else{  
        alert("blur");  
    }  

 

 jQuery序列化表单

var fields=$(elem).serializeArray();

 

通用ajax

/* ----------------- 通用ajax ----------------- */
/**
 *  ajaxUrl:     ajax的URl
 *  returnData:  ajajx传送的参数
 *  types:       ajajx 类型 默认为post
 *  async:       使用同步的方式, true:为异步方式 false:同步  默认true
 *  isparse:     是否使用 JSON.parse(JSON.stringify())转换 true:使用, false:不使用 默认true
 *  dataType      数据类型 默认json
 *  contentType:  发送信息至服务器时内容编码类型   application/x-www-form-urlencoded 、application/json,默认 application/x-www-form-urlencoded 
 *  showload:     是否显示正在加载图片 默认false
 *  closeLoad:    是否在ajax成功或失败后关闭加载图片 默认true
 *  loadbox:      正在加载在哪个div显示  为空时直接弹出
 *  loadtime:     加载延迟时间 默认320秒
 *  ispage:       是否分页 默认false
 *  pagebox:      分页所在的div
 *  countsData:  分页数据的总数的字段 默认counts
 *  currentPages:当前页数 默认1
 *  linePages:   每页显示的条数 默认20条
 *  showCounts    是否显示分页统计 默认false
 *  disabelBox:  点击后禁用的按钮
 *  success:     成功后的回调函数
 *  erro:        失败后的回调函数
 */
var ajaxFns=function(params,ajaxUrl){
    var defaultParams = {
        returnData:{},
        types:"post",
        async:true,
        isparse:true,
        dataType:"json",
        contentType:"application/x-www-form-urlencoded",
        showload:false, 
        closeLoad:true,
        loadbox:"", 
        loadtime:320, 
        ispage:false,  
        pagebox:"",    
        countsData:"counts",
        currentPages:1,
        linePages:20,
        showCounts:false,
        disabledBox:"",
        success:function(){},
        erro:"",
    };
    var settings = {};
    jQuery.extend(settings,defaultParams,params);

    var returnData=settings.returnData
    var types=settings.types
    var async=settings.async
    var isparse=settings.isparse
    var dataType=settings.dataType
    var contentType=settings.contentType
    var showload=settings.showload 
    var closeLoad=settings.closeLoad
    var loadbox=settings.loadbox
    var loadtime=settings.loadtime 
    var ispage=settings.ispage  
    var pagebox=settings.pagebox  
    var countsData=settings.countsData
    var currentPages=settings.currentPages
    var linePages=settings.linePages
    var showCounts=settings.showCounts
    var disabledBox=settings.disabledBox
    var success=settings.success
    var erro=settings.erro

    

    var ajaxurls=checkNull(ajaxUrl)!=""?ajaxUrl.indexOf("?")>=0?ajaxUrl+"&v1="+Timestamp():ajaxUrl+"?v1="+Timestamp():""; //ajax url
    var isload="true";; //是否正在加载数据
    //s.returnData=typeof(s.returnData)!="object"|| Object.getOwnPropertyNames(s.returnData).length==0?{}:s.returnData;
    var returnDatas=isparse?JSON.parse(JSON.stringify(returnData)):returnData;
    
        /* 显示正在加载 图标 */
        if(showload){
           setTimeout(function(){
                if(isload=="true"){
                    if(loadbox==""){
                        layer.load(0, {
                          shadeClose: false,
                          shade: [0.1,"#333"] //0.1透明度的白色背景
                        }); //0代表加载的风格,支持0-2
                    }else{
                        $(loadbox).html('<span class="loadbox"><p class="layui-layer-content layui-layer-loading0"><i class="layui-icon layui-anim layui-anim-rotate layui-anim-loop">&#xe63d;</i></p></span>')
                    }
                }
            },loadtime)
        }
        disabledBox!=""?$(disabledBox).attr("disabled",true):"";  //禁用点击的按钮
        $.ajax({
            url: ajaxurls,
            data: returnDatas,
            type: types,
            async: async,
            dataType: dataType,
            contentType:contentType, 
            success: function (data) {
            isload="false"; 
            showload && closeLoad?layer.closeAll('loading'):"";
            /* 分页 */
            if(ispage && pagebox!=""){
                /* 判断总数字段值 */
                var countsDatas=0;
                if(countsData.indexOf(".")==-1){
                  countsDatas=checkNull(data[countsData])==""?0:data[countsData];
                }
                if(countsData.indexOf(".")>=0){
                    var countsArry=countsData.split(".");
                    for(var i=0;i<countsArry.length;i++){
                        if(i==0){
                          countsDatas=checkNull(data[countsArry[i]])==""?0:data[countsArry[i]]
                        }else{
                          countsDatas=checkNull(countsDatas[countsArry[i]])==""?0:countsDatas[countsArry[i]]
                        }
                    }
                }
                $(pagebox).pages({
                    counts:countsDatas,
                    linePages:linePages,
                    currentPage:currentPages,
                    showCounts:showCounts,
                })  
            }
            disabledBox!=""?$(disabledBox).attr("disabled",false):"";
            success(data);
              
            },
            erro: function (XMLHttpRequest, textStatus, errorThrown) {
            showload && closeLoad?layer.closeAll('loading'):"";   
            disabledBox!=""?$(disabledBox).attr("disabled",false):"";
            isload="false"; 
            erro();
            }
        });
    }

 

/*  ----------------- jQuery 扩展对象 -----------------  */
jQuery.extend({
/* ----------------- 通用ajax ----------------- */
/**
 *  ajaxUrl:     ajax的URl
 *  returnData:  ajajx传送的参数
 *  types:       ajajx 类型 默认为post
 *  async:       使用同步的方式, true:为异步方式 false:同步  默认true
 *  isparse:     是否使用 JSON.parse(JSON.stringify())转换 true:使用, false:不使用 默认true
 *  dataType      数据类型 默认json
 *  contentType:  发送信息至服务器时内容编码类型   application/x-www-form-urlencoded 、application/json,默认 application/x-www-form-urlencoded 
 *  showload:     是否显示正在加载图片 默认false
 *  closeLoad:    是否在ajax成功或失败后关闭加载图片 默认true
 *  loadbox:      正在加载在哪个div显示  为空时直接弹出
 *  loadtime:     加载延迟时间 默认320秒
 *  ispage:       是否分页 默认false
 *  pagebox:      分页所在的div
 *  countsData:  分页数据的总数的字段 默认counts
 *  currentPages:当前页数 默认1
 *  linePages:   每页显示的条数 默认20条
 *  showCounts    是否显示分页统计 默认false
 *  disabelBox:  点击后禁用的按钮
 *  success:     成功后的回调函数
 *  erro:        失败后的回调函数
 */
ajaxFns:function({
    returnData={},
    types="post",
    async=true,
    isparse=true,
    dataType="json",
    contentType="application/x-www-form-urlencoded",
    showload=false, 
    closeLoad=true,
    loadbox="", 
    loadtime=320, 
    ispage=false,  
    pagebox="",    
    countsData="counts",
    currentPages=1,
    linePages=20,
    showCounts=false,
    disabledBox="",
    success="",
    erro="",
}={},ajaxUrl){
    var ajaxurls=isnull(ajaxUrl)!=""?ajaxUrl.indexOf("?")>=0?ajaxUrl+"&v1="+Timestamp():ajaxUrl+"?v1="+Timestamp():""; //ajax url
    var isload="true";; //是否正在加载数据
    //s.returnData=typeof(s.returnData)!="object"|| Object.getOwnPropertyNames(s.returnData).length==0?{}:s.returnData;
    var returnDatas=isparse?JSON.parse(JSON.stringify(returnData)):returnData;
    
        /* 显示正在加载 图标 */
        if(showload){
           setTimeout(function(){
                if(isload=="true"){
                    if(loadbox==""){
                        layer.load(0, {
                          shadeClose: false,
                          shade: [0.1,"#333"] //0.1透明度的白色背景
                        }); //0代表加载的风格,支持0-2
                    }else{
                        $(loadbox).html('<span class="loadbox"><p class="layui-layer-content layui-layer-loading0"><i class="layui-icon layui-anim layui-anim-rotate layui-anim-loop">&#xe63d;</i></p></span>')
                    }
                }
            },loadtime)
        }

        disabledBox!=""?$(disabledBox).attr("disabled",true):"";  //禁用点击的按钮
        $.ajax({
            url: ajaxurls,
            data: returnDatas,
            type: types,
            async: async,
            dataType: dataType,
            contentType:contentType, 
            success: function (data) {
            isload="false"; 
            showload && closeLoad?layer.closeAll('loading'):"";
            /* 分页 */
            if(ispage && pagebox!=""){
                /* 判断总数字段值 */
                var countsDatas
                if(countsData.indexOf(".")==-1){
                  countsDatas=data[countsData];
                }
                if(countsData.indexOf(".")>=0){
                    var countsArry=countsData.split(".");
                    
                    for(var i=0;i<countsArry.length;i++){
                        if(i==0){
                          countsDatas=data[countsArry[i]]
                        }else{
                          countsDatas=countsDatas[countsArry[i]]
                        }
                    }
                }
                $(pagebox).pages({
                    counts:countsDatas,
                    linePages:linePages,
                    currentPage:currentPages,
                    showCounts:showCounts,
                })  
            }
            disabledBox!=""?$(disabledBox).attr("disabled",false):"";
            success(data);
              
            },
            erro: function (XMLHttpRequest, textStatus, errorThrown) {
            showload && closeLoad?layer.closeAll('loading'):"";   
            disabledBox!=""?$(disabledBox).attr("disabled",false):"";
            isload="false"; 
            erro();
            }
        });
    }

})

 

posted @ 2018-01-02 20:05  huihui2014  阅读(104)  评论(0)    收藏  举报