zoukankan      html  css  js  c++  java
  • 个人tools封装

    /**
    * jQuery 扩展
    */
    (function ($) {
    $.fn.extend({
    /**
    * 目标为任意对象元素
    * 同时绑定单击和双击事件
    */
    bindClick: function (click, dblClick, el) {
    el = el || $(this);
    var _time = null;
    el.dblclick(function (e) {
    clearTimeout(_time);
    if (dblClick)
    dblClick.apply(e.target, [e]);
    }).click(function (e) {
    clearTimeout(_time);
    _time = setTimeout(function () {
    if (click)
    click.apply(e.target, [e]);
    }, 250);
    });
    },//bindClick

    /**
    * url 请求地址
    * convert 是否将参数字符串化 配合controller请求使用 默认false
    * opts 为ajax请求对象
    * opts.data 为请求参数
    * opts.success 和 opts.error
    * 分别为请求成功或失败时回调函数function 或对话框内容
    * 对话框时举例: {message:'对话框内容',title:'对话框标题'}
    */
    exajax: function (url, opts, convert) {
    var ajaxParam = {
    url: url,
    async: false, // 同步
    type: 'POST', // 请求类型
    cache: false, // 不缓存
    dataType: 'json',
    success: '',
    error: '',
    timeout:0
    };
    opts = opts || {};
    for (var k in opts) {
    if (ajaxParam.hasOwnProperty(k) || 'data' == k) {
    if (k == 'data') {
    try {
    var params = opts['data'];
    if (!convert) {
    params = JSON.stringify(params);
    ajaxParam.contentType = 'application/json';
    }
    ajaxParam.data = params;
    } catch (e) {
    }
    } else if (k == 'success') {
    var success = opts[k];
    ajaxParam[k] = function (data) {
    if (success) {
    if (typeof success == 'function') {
    success.apply(success, [data]);
    } else {
    if (success.message) {
    $().dialog({
    data: success.message || "操作成功!",
    title: success.title
    }).modal('show');
    }
    }
    }
    }
    } else if (k == 'error') {
    var error = opts[k];
    ajaxParam[k] = function (e) {
    if (error) {
    if (typeof error == 'function') {
    error.apply(error, [e]);
    } else {
    if (error.message) {
    toastr.error("系统未知错误!" + error.message);
    }
    }
    }
    }
    } else {
    ajaxParam[k] = opts[k];
    }
    }
    }
    return $.ajax(ajaxParam);
    },//exajax


    /**
    * opts{data:data,init:{
    * startDate:new Date()
    * },format:{
    * endDate:new Date(),//function(){return ...}
    * isLeader:function(val){ if(val==1){
    * return true; else{
    * return false;
    * }
    * }}
    * }}
    * 1.赋值
    * 目标元素为form表单
    * opts.data 为和表单字段对应的数据对象 会自动根据数据进行字段值填充
    * opts.init 为表单初始化值或初始化回调方法
    * opts.format 为表单赋值格式化回调函数
    * 支持input select checkbox radio等表单元素的赋值
    * 2.取值
    * 当opts.data不存在时 方法作用变为返回封装了目标表单的所有字段值的数据对象
    */
    formVals: function (opts, el) {
    el = el || $(this);
    if (!el || !el.get(0).elements) {
    return;
    }
    opts = opts || {};
    var format = opts.format;
    var init = opts.init;
    var data = opts.data;
    var elementsObj = el.get(0).elements;
    var val;
    if (data != undefined) {//赋值
    if (init) {//整合默认值
    data = _.defaults(data, init);
    }
    var obj;
    if (elementsObj) {
    _.each(elementsObj, function (obj) {
    if (obj.tagName == "INPUT" || obj.tagName == "SELECT") {
    val = null;
    if (data[obj.name] != undefined) {
    var func = data[obj.name];
    if (typeof (func) == 'function') {
    val = func.apply(func, [val, obj, elementsObj]);
    } else {
    val = func;
    }
    }
    if (obj.type == "select-multiple" && obj.multiple) {
    val = $(obj).val(val);
    }
    if (format && format[obj.name] != undefined) {
    func = format[obj.name];
    if (typeof (func) == 'function') {
    val = func.apply(func, [val, obj, data]);
    } else {
    val = func;
    }
    }
    if (obj.type == 'checkbox' || obj.type == 'radio') {
    if (obj.value != undefined && (val instanceof Array)) {
    for (var v in val) {
    if (val[v] == obj.value) {
    $(obj).prop("checked", true);
    }
    }
    } else {
    if (null != val && val != undefined && (val == obj.value)) {
    $(obj).prop("checked", true);
    } else {
    $(obj).prop("checked", false);
    }
    }
    } else if (obj.type == 'file') {
    //do nothing;
    } else {
    obj.value = val;
    }
    }
    });
    }
    } else {//取值
    var ret = {};
    if (elementsObj) {
    _.each(elementsObj, function (obj) {
    val = null;
    if (obj.tagName == "INPUT" || obj.tagName == "SELECT") {//
    val = obj.value;
    if (obj.type == "select-multiple" && obj.multiple) {
    val = $(obj).val();
    }
    if (obj.name == "id" && obj.value == "") {
    val = null;
    }
    if (obj.type == 'checkbox' || obj.type == 'radio') {
    if ($(obj).is(':checked')) {
    var result;
    if (typeof obj.value != undefined) {
    result = obj.value;
    }
    if (obj.type == 'radio') {
    ret[obj.name] = result;
    } else {
    if (!ret[obj.name]) {
    ret[obj.name] = [];
    }
    ret[obj.name].push(result);
    }
    }
    }
    if (format && format[obj.name] != undefined) {
    func = format[obj.name];
    if (typeof (func) == 'function') {
    val = func.apply(func, [val, obj]);
    } else {
    val = func;
    }
    }
    if (obj.type != 'checkbox' && obj.type != 'radio') {
    ret[obj.name] = val;
    }
    }
    });
    return ret;
    }
    }
    return el;
    },//formVals


    /**
    * 目标对象表单
    * 作用为重置表单
    * opts.init 为数据对象 定义字段的初始化默认值或初始化回调方法
    */
    formReset: function (opts, el) {
    el = el || $(this);
    if (!el || !el.get(0).elements) {
    return;
    }
    opts = opts || {};
    var elementsObj = el.get(0).elements;
    var obj;
    if (elementsObj) {
    var init = opts.init;
    for (var i = 0; i < elementsObj.length; i += 1) {
    obj = elementsObj[i];
    if (obj.tagName == "INPUT" || obj.tagName == "SELECT") {
    var val = obj.initValue || '';
    if (init) {
    if (undefined != init[obj.name] && null != init[obj.name]) {
    var func = init[obj.name];
    if (typeof (func) == 'function') {
    val = func.apply(func, [val, obj, elementsObj]);
    } else {
    val = func;
    }
    }
    }
    if (obj.type == 'checkbox' || obj.type == 'radio') {
    if (val == true || val == 1) {
    $(obj).prop("checked", true);
    } else {
    $(obj).prop("checked", false);
    }
    } else {
    obj.value = val;
    }
    }
    }
    }
    return el;
    },//formReset

    });

    //禁止后退键 作用于IE、Chrome
    // document.onkeydown=banBackSpace;
    //禁止后退键 作用于Firefox、Opera
    //document.onkeypress=banBackSpace;
    })(jQuery);

    /* 提示全局设置 */
    toastr.options = {
    "debug": false,
    "newestOnTop": false,
    "positionClass": "toast-bottom-right",
    "closeButton": true,
    "progressBar": true,
    preventDuplicates: true
    };

    /**
    * [createElement 创建HTML文本]
    * @param {[array]} data [数组]
    * @param {[string]} type [类型eg:form,text]
    * @return {[string]} [返回html文本]
    */
    function createElement(data, type) {
    var strTmp = '';
    if (type == 'form') {
    var form = $('<form>');
    form.attr('id', 'formDialog');
    $.each(data, function (index, item) {
    if (item.type == 'file') {
    strTmp +=
    `<div class="form-group">
    <label for="${item.name}" class="col-sm-3 control-label">${item.displayName}</label>
    <div class="col-sm-9">
    <label class="btn btn-default" for="${item.name}">
    <input id="${item.name}" type="${item.type}" style="display:none;"
    onchange="$('#upload-file-info').html($(this).val());">
    ${item.displayName}
    </label>
    <span class='label label-default' id="upload-file-info"></span>
    </div>
    </div>`;
    } else if (item.type == 'hidden') {
    strTmp +=
    `<div">
    <input type="hidden" id="${item.name}" name="${item.name}" value="${item.value}">
    </div>`;
    } else if (item.type == 'textarea') {
    var attrTpl = '';
    if(typeof item.maxlength != "undefined" && item.maxlength != null) {
    attrTpl = `maxlength="${item.maxlength}"`;
    }
    strTmp +=
    `<div class="form-group has-feedback">
    <label for="${item.name}" control-label">${item.displayName}</label>
    <textarea name="${item.name}" ${attrTpl} class="form-control" id="${item.name}" placeholder="${item.displayName}"></textarea>
    </div>`;
    } else if (item.type == 'select') {
    strTmp +=
    `<div class="form-group">
    <label for="${item.name}" class="col-sm-3 control-label">${item.displayName}</label>
    <div class="col-sm-9">
    <select id="${item.name}" class="select2_demo_1 form-control" style=" 100%">
    <option value="1">分层1</option>
    <option value="2">分层2</option>
    <option value="3">分层3</option>
    <option value="4">分层4</option>
    <option value="5">分层5</option>
    </select>
    </div>
    </div>`;
    } else if (item.type == 'radio') {
    strTmp +=
    `<div class="form-group has-feedback">
    <label for="${item.name}">${item.displayName}</label>
    <div>`;
    $.each(item.child, function (i, e) {
    if (i == 0) {
    strTmp += `
    <div class="radio radio-info radio-inline">
    <input type="radio" id="${item.name}${i}" value="${e.value}" name="${item.name}" checked="true">
    <label for="${item.name}${i}">${e.name}</label>
    </div>
    `;
    } else {
    strTmp += `
    <div class="radio radio-info radio-inline">
    <input type="radio" id="${item.name}${i}" value="${e.value}" name="${item.name}">
    <label for="${item.name}${i}">${e.name}</label>
    </div>
    `;
    }
    });
    strTmp += `
    </div>
    </div>`;
    } else {
    strTmp +=
    `<div class="form-group has-feedback">
    <label for="${item.name}" control-label">${item.displayName}</label>
    <input type="${item.type}" name="${item.name}" class="form-control" ${item.disabled ? 'disabled' : ''} id="${item.name}" value="${item.value ? item.value : ''}">
    </div>`;
    }
    })
    form.append(strTmp);
    setTimeout(function () {
    $('#formDialog input:visible:enabled:first').focus();
    $('#formDialog textarea:visible:enabled:first').focus();
    },500);
    return form;
    } else if (type == 'text') {
    strTmp += `<p>${data[0]}</p>`;

    strTmp += '<div class="row">'
    $.each(data, function (index, item) {
    if (index !== 0) {
    strTmp += `<p style="font-size:12px;margin-top:10px;" class="col-sm-4">${item}</p>`
    }
    })
    strTmp += '</div>'
    return strTmp;
    }
    }

    /**
    * [给jquery validate 添加验证规则]
    * @param {[type]} value [description]
    * @param {[type]} element [description]
    * @return {[type]} [description]
    */
    jQuery.validator.addMethod("moreZero", function (value, element) {
    var moreZero = /^+?[0-9]*$/; // 大于等于0的数字'
    return moreZero.test(value);
    }, "大于等于0的数字");
    jQuery.validator.addMethod("checkIp", function (value, element) {
    var checkIp = /^((25[0-5]|2[0-4]d|[01]?dd?)($|(?!.$).)){4}$/;//ip格式验证
    return !!value.match(checkIp)
    }, "请填写正确ip地址")
    jQuery.validator.addMethod("checkPicSize", function (value, element) {
    var fileSize = element.files[0].size;
    var maxSize = 5 * 1024 * 1024;
    if (fileSize > maxSize) {
    return false;
    } else {
    return true;
    }
    }, "请上传大小在5M一下的文件");
    jQuery.validator.addMethod("checkPicsuffix", function (value, element, param) {
    if (param) {
    if (value == '') {
    return true;
    }
    var length = value.length;
    var suffixArray = param.split('|');
    var suffix = value.substr(length - 3, length);
    for (var i = 0; i < suffixArray.length; i++) {
    if (suffixArray[i] == suffix) {
    return true;
    }
    }
    }
    return false;
    }, "请上传符合格式的文件");

    jQuery.validator.addMethod("password", function (value, element) {
    var tel = /^[a-zA-Z0-9]{4,20}$/;
    return this.optional(element) || (tel.test(value));
    }, "只能由4-20位字母或数字组成");
    /**
    * 过滤所有特殊字符串和空格
    * @param s
    * @returns {boolean}
    */
    jQuery.validator.addMethod("testNameSpecial", function (value, element) {
    var pattern = new RegExp("[`\+\-~ !@#$^&*()=|{}':;',\[\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%·]")
    return !pattern.test(value);
    }, "名称不能有特殊字符");
    /**
    * 过滤所有特殊字符串和空格 除#
    * @param
    * @returns {boolean}
    */
    jQuery.validator.addMethod("nameSpecial", function (value, element) {
    var pattern = new RegExp("[`\+\-~ !@$^&*()=|{}':;',\[\].<>/?~!@¥……&*()——|{}【】‘;:”“'。,、?%·]")
    return !pattern.test(value);
    }, "名称不能有特殊字符");

    jQuery.fn.slideLeftHide = function (speed, callback) {
    this.animate({
    "hide",
    paddingLeft: "hide",
    paddingRight: "hide",
    marginLeft: "hide",
    marginRight: "hide"
    }, speed, callback);
    };
    jQuery.fn.slideLeftShow = function (speed, callback) {
    this.animate({
    "show",
    paddingLeft: "show",
    paddingRight: "show",
    marginLeft: "show",
    marginRight: "show"
    }, speed, callback);
    };
    jQuery.validator.addMethod("checkpSn", function (value, element) {
    var checkpSn = /^[0-9A-Fa-f]{8,8}$/;
    return !!value.match(checkpSn)
    }, "请填写正确的序列号,如:FFFF0000");

    /**
    * 过滤所有特殊字符串和空格
    * @param s
    * @returns {boolean}
    */

    function specialVerificationName(s) {
    var pattern = new RegExp("[`\+\-~ !@#$^&*()=|{}':;',\[\].<>/?~!@#¥……&*()——|{}【】‘;:”“'。,、?%·]")
    return pattern.test(s);
    }

    // 全局设置AJAX
    function setAjaxGlobalOptions() {
    //设置AJAX的全局默认选项
    $.ajaxSetup({
    async: true,//同步请求
    timeout: 10000,//超时时间
    complete: function (XMLHttpRequest, textStatus) {
    // 未授权返回登录界面
    if(XMLHttpRequest.status == 401 || XMLHttpRequest.status == 302){
    window.open ('/ut-web','_top');
    }
    }
    });
    }

    $(function () {
    setAjaxGlobalOptions();
    });

    //时间戳转年月日时分秒
    Date.prototype.toLocaleString = function () {
    return this.getFullYear() + "/" + (this.getMonth() + 1) + "/" + this.getDate() + "/ " + this.getHours() + ":" + this.getMinutes() + ":" + this.getSeconds();
    };
    //格式化时间
    Date.prototype.format = function (fmt) {
    var o = {
    "M+": this.getMonth() + 1, //月份
    "d+": this.getDate(), //日
    "h+": this.getHours(), //小时
    "m+": this.getMinutes(), //分
    "s+": this.getSeconds(), //秒
    "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    "S": this.getMilliseconds(), //毫秒
    "w+": this.getDay() //星期
    };
    if (/(y+)/.test(fmt))
    fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
    for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt))
    fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    return fmt;
    }

    // 时间控件全局设置语言
    $.datetimepicker.setLocale('ch');

    // tool 全局配置
    var tool = {
    //获取当前视图高 如果传入节点,获取节点高度
    getClientHeight: function (node) {
    if (typeof node != 'undefined') {
    return $(node).height();
    }
    return document.body.clientHeight;
    },
    //获取url中的参数
    getUrlParam: function (name) {
    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
    var r = window.location.search.substr(1).match(reg); //匹配目标参数
    if (r != null) return unescape(r[2]);
    return null; //返回参数值
    },
    /*
    * 封装jquery validate方法
    * 参数 id string form表单ID,jquery获取dom元素一样
    * 参数 relus object 参考jquery validate relus
    * 参数 messages object 参考 jquery validate
    * 返回 无
    * */
    validate: function (id, rules, messages) {
    var validate = $(id).validate({
    ignore: '',
    rules: rules,
    focusInvalid: true,
    messages: messages,
    errorPlacement: function (error, element) {
    element.next().remove();
    // 加上x 图标
    element.after('<span class="glyphicon glyphicon-remove form-control-feedback" aria-hidden="true"></span>');
    element.closest('.form-group').append(error);
    },
    // 给未通过的元素进行处理
    highlight: function (element) {
    $(element).closest('.form-group').removeClass('has-success').addClass('has-error');
    },
    // 验证通过的处理
    success: function (label) {
    var el = label.closest('.form-group').find('input');
    el.next().remove();
    el.after('<span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true"></span>');
    label.closest('.form-group').removeClass('has-error').addClass('has-success');
    label.remove();

    }
    });
    return validate;
    },
    /**
    * niceScroll.js 滚动条样式修改
    * @param node id,class jquery获取dom元素一样
    * @return niceScroll 对象
    */
    changeScroll: function (node, obj) {
    var scroll = $(node).mCustomScrollbar(obj);
    return scroll;
    },
    /*
    * 把constant.js 变量转成select2下拉框格式
    * */
    formatSelectData: function (item) {
    var newArr = [];
    $.each(item, function (i, ele) {
    if(typeof ele != "function") {
    newArr.push({
    id: i,
    text: ele
    })
    }
    })
    return newArr.reverse();
    },
    /**
    * 时间控件
    */
    datetimepicker: function (node, obj) {
    var obj = obj || {};
    obj.theme = 'dark';
    $(node).datetimepicker(obj);
    },
    /**
    * Search
    */
    searchInput: function (node) {
    var ele = $(node);
    var input = ele.find('input');
    var clear = ele.find('.searchClear');
    input.on('input change', function () {
    if ($(this).val().length != 0) {
    clear.css('display', 'block');
    } else {
    clear.css('display', 'none');
    }
    });
    clear.on('click', function () {
    input.val('').trigger('input').trigger('change');
    $(this).css('display', 'none');
    })
    },
    /**
    * select2()
    */
    select2: function (node, obj) {
    obj.language = 'zh-CN';
    var select = $(node).select2(obj);
    return select;
    },
    /**
    * 创建表格
    * @param opts {
    * tableName: '',
    * height: 100,
    * columns: [],
    * url: '',
    * onClickRow: method
    * }
    * @return table
    */
    createTable: function (opts) {
    var table = $(opts.tableName).bootstrapTable({
    height: opts.height || undefined,
    columns: opts.columns || [],
    formatLoadingMessage: function () {
    return "请稍等,正在加载中...<i class='fa fa-spinner fa-spin fa-fw'></i>";
    },
    url: opts.url || '',
    method: 'get',
    cache: false,
    dataType: 'json',
    onClickRow: opts.onClickRow || function () { },
    ajaxOptions: opts.ajaxOptions || {},
    data: opts.data || [],
    rowStyle: opts.rowStyle || undefined,
    queryParams: opts.queryParams,
    clickToSelect: opts.clickToSelect || false,
    singleSelect: opts.singleSelect || false,
    });
    return table;
    },
    /**
    * 获取预览图地址
    * @param file 文件
    */
    getObjectURL: function (file) {
    var url = null;
    if (window.createObjectURL != undefined) {
    url = window.createObjectURL(file)
    } else if (window.URL != undefined) {
    url = window.URL.createObjectURL(file)
    } else if (window.webkitURL != undefined) {
    url = window.webkitURL.createObjectURL(file)
    }
    return url;
    },
    /**
    * 获取用户信息
    * @return {null}
    */
    getUserInfo: function () {
    if (typeof localStorage.userInfo != 'undefined') {
    return JSON.parse(localStorage.userInfo);
    } else {
    return null;
    }
    },
    showEmpInfo: function (opts) {
    var text = '';
    if (typeof opts.empName != 'undefined' && opts.empName) text += opts.empName + '(';
    else text += '未知(';
    if (typeof opts.terminalSn != 'undefined' && opts.terminalSn) text += opts.terminalSn;
    else text += '无';
    if (typeof opts.empJobNo != 'undefined' && opts.empJobNo) text += ' - ' + opts.empJobNo;
    else if(typeof opts.jobno != 'undefined' && opts.jobno) text += ' - ' + opts.jobno;
    else text += ' - 无';
    if (typeof opts.phoneNoUt != 'undefined' && opts.phoneNoUt) text += ' - ' + opts.phoneNoUt;
    else text += ' - 无';
    return text + ')';
    },
    loading: function(){
    var loadingDialog = BootstrapDialog.show({
    title: '提示',
    message: '<div class="tc" style="margin: 10px 0;">正在处理中,请稍后<i class="fa fa-spinner fa-pulse fa-3x fa-fw" style="font-size:14px;"></i></div>',
    closable: false
    });
    return loadingDialog;
    },
    reloadMapCache: function(mapId){
    var mqInfo = {
    deviceSn: mapId,
    }
    $(document).exajax(baseUrl + "deviceConfig/reloadMap", {
    data: {res: JSON.stringify(mqInfo)},
    success: function (data) {
    }, error: {
    function () {
    }
    }
    }, true);
    },
    autoImportFormCreate: function (data) {
    if(data) {
    var form = $('<form>');
    form.attr('id', 'formElement');
    form.addClass('form-horizontal');
    var tpl = '';
    _.each(data, function (item) {
    tpl += `<div class="form-group">
    <label for="${item.name}" class="col-sm-4 control-label">${item.displayName}:</label>
    <div class="col-sm-7">`;
    if (item.type == "text") {
    tpl += `<input id="${item.name}" name="${item.name}" type="text" value="${typeof item.value != 'undefined' ? item.value : ''}" ${item.disabled ? 'disabled' : ''} class="form-control">`;
    } if(item.type == "number") {
    tpl += `<input id="${item.name}" name="${item.name}" type="number" min="${typeof item.min != 'undefined' ? item.min : ''}" max="${typeof item.max != 'undefined' ? item.max : ''}" value="${typeof item.value != 'undefined' ? item.value : ''}" ${item.disabled ? 'disabled' : ''} class="form-control">`;
    } else if (item.type == "select") {
    tpl += `<select id="${item.name}" name="${item.name}" class="form-control">`;
    if(item.options) {
    _.each(item.options, function (option) {
    tpl += `<option value="${option.value}">${option.text}</option>`
    })
    }
    tpl += '</select>';
    }
    tpl += `</div></div>`;
    })
    form.append(tpl);
    return form;
    }
    },
    // 比较两个数组
    compare: function (arr1, arr2) {
    return (arr1.length == arr2.length) && arr1.every(function(element, index) {
    return element === arr2[index];
    })
    },
    /**
    * 元素拖动
    * @param oParent 被拖动元素
    * @param handle 触发拖动元素
    * @param isLeft left 值 boolean
    * @param isTop top 值 boolean
    * @param lockX width 值 boolean
    * @param lockY height 值 boolean
    * @param dragMinWidth 最小宽度
    * @param dragMinHeight 最小高度
    * @param callBack 拖拽完成回调
    */
    elementResize: function (opts) {
    opts.handle.onmousedown = function (event) {
    var event = event || window.event;
    var disX = event.clientX - opts.handle.offsetLeft;
    var disY = event.clientY - opts.handle.offsetTop;
    var iParentTop = opts.oParent.offsetTop;
    var iParentLeft = opts.oParent.offsetLeft;
    var iParentWidth = opts.oParent.offsetWidth;
    var iParentHeight = opts.oParent.offsetHeight;
    document.onmousemove = function (event) {
    var event = event || window.event;
    var iL = event.clientX - disX;
    var iT = event.clientY - disY;
    var maxW = document.documentElement.clientWidth - opts.oParent.offsetLeft - 2;
    var maxH = document.documentElement.clientHeight - opts.oParent.offsetTop - 2;
    var iW = opts.isLeft ? iParentWidth - iL : opts.handle.offsetWidth + iL;
    var iH = opts.isTop ? iParentHeight - iT : opts.handle.offsetHeight + iT;
    opts.isLeft && (opts.oParent.style.left = iParentLeft + iL + "px");
    opts.isTop && (opts.oParent.style.top = iParentTop + iT + "px");
    iW < opts.dragMinWidth && (iW = opts.dragMinWidth);
    iW > maxW && (iW = maxW);
    opts.lockX || (opts.oParent.style.width = iW + "px");
    iH < opts.dragMinHeight && (iH = opts.dragMinHeight);
    if (opts.dragMaxHeight) {
    iH > opts.dragMaxHeight && (iH = opts.dragMaxHeight);
    } else {
    iH > maxH && (iH = maxH);
    }
    opts.lockY || (opts.oParent.style.height = iH + "px");
    if ((opts.isLeft && iW == opts.dragMinWidth) || (opts.isTop && iH == opts.dragMinHeight)) document.onmousemove =
    null;
    return false;
    };
    document.onmouseup = function () {
    document.onmousemove = null;
    document.onmouseup = null;
    if (typeof opts.callBack == "function") {
    opts.callBack();
    }
    };
    return false;
    }
    }
    }
    //table输入页数跳转+返回
    function tablePage(tableId) {
    //输入制定页数跳转
    var preNumber = parseInt(localStorage.preNumber);
    if (preNumber != $(tableId).bootstrapTable('getOptions').pageNumber) {
    localStorage.preNumber = $(tableId).bootstrapTable('getOptions').pageNumber
    }

    var sizeNumber = parseInt(localStorage.sizeNumber);
    if (sizeNumber != $(tableId).bootstrapTable('getOptions').pageSize) {
    localStorage.sizeNumber = $(tableId).bootstrapTable('getOptions').pageNumber
    }

    $(".numberBtn").on('click', function () {
    var number = parseInt($(".numberInput").val());
    var numberMax = 1;
    if($('.page-last a').length == 1) {
    numberMax = parseInt($('.page-last a').text());
    }else {
    numberMax = parseInt($(".page-number :last").text());
    }
    if(number > numberMax) {
    $(tableId).bootstrapTable('selectPage', numberMax);
    }else {
    $(tableId).bootstrapTable('selectPage', number);
    }

    })
    $(".preNumberBtn").on('click', function () {
    $(tableId).bootstrapTable('selectPage', preNumber);
    })
    }

    /*
    * 滚轮改变input值----兼容火狐.chrome.Ie
    * 直接传入节点命调用
    * */
    var EventUtil = {

    addHandler: function (element, type, handler) {
    if (element.addEventListener) {
    element.addEventListener(type, handler, false);
    } else if (element.attachEvent) {
    element.attachEvent("on" + type, handler);
    } else {
    element["on" + type] = handler;
    }
    },

    removeHandler: function (element, type, handler) {
    if (element.removeEventListener) {
    element.removeEventListener(type, handler, false);
    } else if (element.detachEvent) {
    element.detachEvent("on" + type, handler);
    } else {
    element["on" + type] = null;
    }
    },

    getEvent: function (event) {
    return event ? event : window.event;
    },

    getTarget: function (event) {
    return event.target || event.srcElement;
    },

    getWheelDelta: function (event) {
    if (event.wheelDelta) {
    return event.wheelDelta;
    } else {
    return -event.detail * 40;
    }
    },

    preventDefault: function (event) {
    if (event.preventDefault) {
    event.preventDefault();
    } else {
    event.returnValue = false;
    }
    }

    };

    function onWheel(event) {

    event = EventUtil.getEvent(event);
    var curElem = EventUtil.getTarget(event);
    var curVal = parseInt(curElem.value);
    var delta = EventUtil.getWheelDelta(event);

    if (delta > 0) {
    curElem.value = curVal + 1;
    } else {
    if (curVal == "0") {
    return
    } else {
    curElem.value = curVal - 1;
    }


    }

    EventUtil.preventDefault(event);

    }

    function slideInput(node) {
    $(node).hover(function () {
    EventUtil.addHandler(document, 'mousewheel', onWheel);
    EventUtil.addHandler(document, 'DOMMouseScroll', onWheel);
    },
    function () {
    EventUtil.removeHandler(document, 'mousewheel', onWheel);
    EventUtil.removeHandler(document, 'DOMMouseScroll', onWheel);
    });
    }

  • 相关阅读:
    如何去除ecshop标题和网站底部的Powered by ECShop
    ecshop标签
    安装Wamp后 Apache无法启动的解决方法
    wamp5中的apache不能启动,80端口被占用
    iOS UI-AlertView(警示框)和ActionSheet(选择框、操作表单)
    iOS UI-三种简单的动画设置
    iOS UI-IOS开发中Xcode的一些使用技巧
    iOS UI-九宫格
    iOS开发-开发文档安装
    iOS UI-创建空项目
  • 原文地址:https://www.cnblogs.com/benmumu/p/9378442.html
Copyright © 2011-2022 走看看