前端js、jquery代码规范写法,方便维护修改

写在前面

需求:方便代码维护,修改方便,以下是代码中的实现方法

备注:好久之前,从一位网友处看到此方法,觉得挺好,我只是代码的搬运工

/**
 * Created by user on 2018/9/14.
 */
/*参数定义注释 wwwp 12/29
 * STEPLISTONE 存储账户信息数组
 * top["sysIndex"] 父页面
 * arrToObject() 处理数组为map
 * */
var init=(function () {
    /* 注入所有方法 抛出*/
    var tool = {
        arrToObject: function (arr) {
            var strJs = '({';
            for (var i = 0; i < arr.length; i += 1) {
                var as = arr[i].split("=");
                strJs = strJs + as[0] + ':' + '"' + as[1] + '"' + ',';
            }
            strJs = strJs.substr(0, strJs.length - 1) + '})';
            return eval(strJs);
        }
    };
    var tempObj={
        reader:function(){
            mini.parse();
            top["sysIndex"] = window;
            var _this = this;
            var STEPLISTONE=[];
            //    地图显示
            var map = new BMap.Map("getLatLngMap");
            map.centerAndZoom(new BMap.Point(116.413610, 39.911066), 12);
            var top_left_control = new BMap.ScaleControl({anchor: BMAP_ANCHOR_TOP_LEFT});// 左上角,添加比例尺
            var top_left_navigation = new BMap.NavigationControl();  //左上角,添加默认缩放平移控件
            var top_right_navigation = new BMap.NavigationControl({
                anchor: BMAP_ANCHOR_TOP_RIGHT,
                type: BMAP_NAVIGATION_CONTROL_SMALL
            }); //右上角,仅包含平移和缩放按钮
            map.addControl(top_left_control);
            map.addControl(top_left_navigation);
            map.addControl(top_right_navigation);
            map.enableScrollWheelZoom(true);

            //    单击获取点击的经纬度
            map.addEventListener("click", function (e) {
                mini.get("lng").setValue(e.point.lng);
                mini.get("lat").setValue(e.point.lat);
                /*alert(e.point.lng + "," + e.point.lat);*/
                map.clearOverlays();
                 marker = new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat));
                    marker.enableDragging(); //支持拖拽
                map.addOverlay(marker);
                marker.addEventListener("dragend",function(e) {
                    mini.get("lat").setValue(e.point.lat);
                    mini.get("lng").setValue(e.point.lng);
                    map.clearOverlays();
                     marker = new BMap.Marker(new BMap.Point(e.point.lng, e.point.lat));

                })
            });
        },
        //注入所有的选择器
        selector:{
            $mySelector:$('#mySelector'),
            $partOne:$('#btn_part1'),
            $part1:$('.part1'),
            $part2:$('.part2'),
            $part3:$('.part3'),
            $isHide:$('.isHide'),
            $name:mini.getByName("name"),
            $loginName:document.getElementById("loginName"),
            $registerEmail:document.getElementById("registerEmail"),
            $nowCity:mini.get('nowCity'),
            // $nowStreet:mini.get("nowStreet"),
            $nowAddress:mini.get("nowAddress"),
            $registerCity:mini.get('registerCity'),
            // $registerStreet:mini.get('registerStreet'),
            $violationNature:mini.get('violationNature')
        },
        //注入所有的接口地址,
        interface: {
            allSave:ctx+'/medicalInstitutionsInformation/medicalRegister',
            email:ctx+'/user/emailValidate',
            nowAddress: ctx+'/medicalInstitutionsInformation/getTwoLevelLinkageDataByRegion',
            checkLoginName:ctx+'/sys/user/checkLoginName',
            checkMedicalName:ctx+'/sys/user/checkMedicalName',
            checkEmail:ctx+'/sys/user/checkLoginEmail'
        },
        //注入所有事件
        registerEle:{
            blur_map:function () {
                var county = tempObj.selector.$nowCity.getText();
                var address =tempObj.selector.$nowAddress.getValue();
                if (!county) {
                    ebapUtils.tipbox({type: "warning", msg: "为保证地理信息准确请您选择区!"});
                    return;
                }
                var map = new BMap.Map("getLatLngMap");
                map.centerAndZoom(new BMap.Point(116.413610, 39.911066), 12);
                var realityAddress = "北京市" + county + address;
                var myGeo = new BMap.Geocoder();
                // 将地址解析结果显示在地图上,并调整地图视野
                myGeo.getPoint(realityAddress, function (point) {
                    if (point) {
                        map.centerAndZoom(point, 15);
                        // map.addOverlay(new BMap.Marker(point));
                        map.clearOverlays();
                        var marker = new BMap.Marker(point);
                        map.addOverlay(marker);
                        marker.enableDragging();
                        marker.addEventListener("dragend", function (e) {
                            mini.getByName('longitude').setValue(e.point.lng);
                            mini.getByName('longitude').setText(e.point.lng);
                            mini.getByName('latitude').setValue(e.point.lat);
                            mini.getByName('latitude').setText(e.point.lat);
                        });
                        mini.get("lng").setValue(point.lng);
                        mini.get("lat").setValue(point.lat)
                    } else {
                        ebapUtils.tipbox({type: "warning", msg: "您选择的地址没有查找到,请到地图上点击选择准确位置!"});
                    }
                }, "北京市");
            },
            click_partTwo:function () {
                var form = new mini.Form("#form");
                form.validate();
                if(form.isValid()==false)return;
                tempObj.selector.$part2.hide();
                $(".step li").eq(2).addClass("on");
                var file = $("#certificatePictureUrl > input:file")[0];
                var data=form.getData();
                $.ajaxFileUpload({
                    url: tempObj.interface.allSave,             //用于文件上传的服务器端请求地址
                    fileElementId:file, //文件上传域的ID
                    type:"post",
                    data:data ,
                    success: function (map) {   //服务器成功响应处理函数
                        tempObj.selector.$part3.show();
                        //返回map
                        countdown({
                            maxTime:15,
                            ing:function(c){
                                $("#times").text(c);
                            },
                            after:function(){
                                window.location.href="${ctx}/logout";
                            }
                        });
                    },
                    error: function () {  //服务器响应失败处理函数
                        ebapUtils.tipbox({
                            type:"warning",
                            msg:"服务器响应失败!"
                        });
                    }
                });
            },
            click_isHide: function () {
                var ifHide = tempObj.selector.$violationNature.getValue();
                ifHide == '1' ? tempObj.selector.$isHide.hide() : tempObj.selector.$isHide.show();
            },
            click_phone: function (e) {
                var name = e.sender.name;
                if (e.value == "" || e.value == null || e.value == undefined) {
                    e.value = '';
                    e.errorText = "请输入正确的11位电话号码";
                    e.isValid = false;
                }
                if (!(/^1[3456789]\d{9}$/.test(e.value))&&!(/^0\d{2,3}-\d{7,8}(-\d{1,6})?$/.test(e.value))) {
                    e.isValid = false;
                }
            }
        },
        // ajax请求
        ajaxRequest:{
            ajax_onEmail: function () {
                //先验证登录名 再验证邮箱
                init.ajaxRequest.ajax_checkLoginNameExist('true');

            },
            ajax_onEmail_save:function () {
                if (!verifyCheck._click()) return;
                var flag = document.getElementById("btn_part1").disabled;
                if (flag == 'true') {
                    return;
                }
                else {
                    //校验用户名与校验邮箱 todo
                    //获得相应的信息
                    var STEPLISTONE = [];
                    $(".part1 input").each(function (i, ele) {
                        STEPLISTONE.push($(ele).attr("name") + '=' + $(ele).val());
                    });
                    var data = tool.arrToObject(STEPLISTONE);
                    document.getElementById("btn_part1").disabled = 'true';
                    $.post(tempObj.interface.email, data, function (data) {
                        tempObj.callback.call_onEmail(data);
                    }).error(function () {
                        ebapUtils.tipbox({
                            type: "warning",
                            msg: "服务器响应失败!"
                        });
                        document.getElementById("btn_part1").disabled = 'false';
                    });
                }
            },
            ajax_onRegionChanged: function () {
                //获得区相应的街道
                var value=tempObj.selector.$nowCity.value || '';
                $.post(tempObj.interface.nowAddress, {region: value}, function (data) {
                    tempObj.callback.call_onRegionChanged(data);
                });
            },
            ajax_onRegisterChanged: function () {
                //获得区相应的街道
                var value=tempObj.selector.$registerCity.value || '';
                $.post(tempObj.interface.nowAddress, {region: value}, function (data) {
                    tempObj.callback.call_onRegisterChanged(data);
                });
            },
            //_flag的标志是判断是否在点击下一步进行检验登录名与邮箱
            ajax_checkLoginNameExist: function (_flag) {
                //检测用户名
                var value=tempObj.selector.$loginName.value || '';
                $.post(tempObj.interface.checkLoginName, {oldLoginName: "", loginName: value}, function (data) {
                    if(_flag=='true'){
                        tempObj.callback.call_checkLoginNameExistFlag(data);
                    }
                    else{
                        tempObj.callback.call_checkLoginNameExist(data);
                    }
                });

            },
            ajax_checkMedicalName: function () {
                //检测医疗机构
                var value=tempObj.selector.$name.getValue() || '';
                $.post(tempObj.interface.checkMedicalName, {oldMedicalName: "", medicalName: value}, function (data) {
                    tempObj.callback.call_checkMedicalName(data);
                });
            },
            //公用这个请求
            ajax_login_T:function(callback){
                //所有接口地址从interface中获取,callback中tempObj.callback中处理
                $.post("","",callback);
            },
            ajax_checkEmailExist:function(_flag){
                var value=tempObj.selector.$registerEmail.value || '';
                $.post(tempObj.interface.checkEmail, {oldRegisterEmail: "", registerEmail: value}, function (data) {
                    if(_flag=='true'){
                        tempObj.callback.call_checkEmailExistFlag(data);
                    }
                    else{
                        tempObj.callback.call_checkEmailExist(data);
                    }
                });
            }
        },
        callback:{
            //请求处理回调
            call_onEmail:function (data) {
                data=eval('(' + data + ')');
                if (data.status == 'success') {
                    mini.alert(data.message, "提示", function () {
                        ebapUtils.actions.close('cancel');
                        window.location.reload();
                    });
                    ebapUtils.styleAlert();
                }
                else {
                    ebapUtils.tipbox({type: "error", msg: data.message});
                    document.getElementById("btn_part1").disabled = 'false';
                }

            },
            call_onRegionChanged:function(data){
                tempObj.selector.$nowStreet.setData(data)
            },
            call_onRegisterChanged:function(data){
                tempObj.selector.$registerStreet.setData(data)
            },
            //登录名发生变化调用的事件
            call_checkLoginNameExist:function (data) {
                if (data == 'false') {
                    ebapUtils.tipbox({"type": "error", "msg": "用户名已经存在!"});
                    tempObj.selector.$loginName.value = "";
                    $('body').find("label.blank").addClass('hide');
                }
            },
            //点击下一步保存用户调用的事件
            call_checkLoginNameExistFlag:function (data) {
                if (data == 'false') {
                    ebapUtils.tipbox({"type": "error", "msg": "用户名已经存在!"});
                    tempObj.selector.$loginName.value = "";
                    $('body').find("label.blank").addClass('hide');
                }
                else{
                    init.ajaxRequest.ajax_checkEmailExist('true');
                }
            },
            call_checkMedicalName:function (data) {
                if (data == 'false') {
                    ebapUtils.tipbox({"type": "error", "msg": "该医疗机构已经存在!"});
                    tempObj.selector.$name.setValue("");
                }
            },
            call_checkEmailExist:function (data) {
                if (data == 'false') {
                    tempObj.selector.$registerEmail.value = "";
                    $('#registerEmail').next('.blank').addClass('hide');
                    mini.alert('该邮箱已经注册,请登录!', "提示", function () {
                        ebapUtils.actions.close('cancel');
                    });
                    ebapUtils.styleAlert();
                }
            },
            call_checkEmailExistFlag:function (data) {
                if (data == 'false') {
                    tempObj.selector.$registerEmail.value = "";
                    $('#registerEmail').next('.blank').addClass('hide');
                    mini.alert('该邮箱已经注册,请登录!', "提示", function () {
                        ebapUtils.actions.close('cancel');
                    });
                    ebapUtils.styleAlert();
                }
                else{
                    init.ajaxRequest.ajax_onEmail_save();
                }
            },
            //公用请求处理回调
            call_login_T:function(){
                var temp = function(){

                };
                tempObj.ajaxRequest.ajax_login_T(temp);
            }
        }
    };
    //  抛出
    var outputObj =function(){
        //首先执行reader方法,初始化一些操作
        tempObj.reader();
        return tempObj;
    };
    return new outputObj();
})();
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,014评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,796评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,484评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,830评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,946评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,114评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,182评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,927评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,369评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,678评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,832评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,533评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,166评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,885评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,128评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,659评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,738评论 2 351

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 8,981评论 0 13
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,094评论 1 32
  • 以下文章转载自知乎,暗灭-京华九月秋近寒,浮沉半生影长单. 暗灭 京华九月秋近寒,浮沉半生影长单 10,850 人...
    ve追风_685b阅读 4,085评论 1 15
  • 郑重声明:本人开坑,写《香蜜沉沉烬如霜》润玉锦觅CP同人小说的初衷是因为大爱我们家润玉,以及为了圆自己一个happ...
    梅话三弄阅读 7,813评论 21 18
  • 问路 山空愁倦鸟,鸟倦愁空山。 难归欲尽酒,酒尽欲归难。 寒衾薄冷躯,躯冷薄衾寒。 安得君何处,处何君得安? 故乡...
    言禾丶阅读 92评论 0 0