APICloud Javascript Library

/*
 * APICloud JavaScript Library
 * Copyright (c) 2014 apicloud.com
 */
(function(window){
    var u = {};
    var isAndroid = (/android/gi).test(navigator.appVersion);
    var uzStorage = function(){
        var ls = window.localStorage;
        if(isAndroid){
           ls = os.localStorage();
        }
        return ls;
    };
    function parseArguments(url, data, fnSuc, dataType) {
        if (typeof(data) == 'function') {
        	dataType = fnSuc;
        	fnSuc = data;
        	data = undefined;
        }
        if (typeof(fnSuc) != 'function') {
        	dataType = fnSuc;
        	fnSuc = undefined;
        };
        return {
            url: url,
            data: data,
            fnSuc: fnSuc,
            dataType: dataType
        }
    };
    u.trim = function(str){
        if(String.prototype.trim){
            return str == null ? "" : String.prototype.trim.call(str);
        }else{
            return str.replace(/(^\s*)|(\s*$)/g, "");
        }
    };
    u.trimAll = function(str){
        return str.replace(/\s*/g,'');
    };
    u.isArray = function(obj){
        if(Array.isArray){
            return Array.isArray(obj);
        }else{
            return obj instanceof Array;
        }
    };
    u.addEvt = function(el, name, fn, useCapture){
        var useCapture = useCapture || false;
        if(el.addEventListener) {
            el.addEventListener(name, fn, useCapture);
        }
    };
    u.rmEvt = function(el, name, fn, useCapture){
        var useCapture = useCapture || false;
        if (el.removeEventListener) {
            el.removeEventListener(name, fn, useCapture);
        }
    };
    u.one = function(el, name, fn, useCapture){
        var useCapture = useCapture || false;
        var that = this;
        var cb = function(){
            fn && fn();
            that.rmEvt(el, name, cb, useCapture);
        };
        that.addEvt(el, name, cb, useCapture);
    };
    u.dom = function(el, selector){
        if(arguments.length === 1 && typeof arguments[0] == 'string'){
            if(document.querySelector){
                return document.querySelector(arguments[0]);
            }
        }else if(arguments.length === 2){
            if(el.querySelector){
                return el.querySelector(selector);
            }
        }
    };
    u.domAll = function(el, selector){
        if(arguments.length === 1 && typeof arguments[0] == 'string'){
            if(document.querySelectorAll){
                return document.querySelectorAll(arguments[0]);
            }
        }else if(arguments.length === 2){
            if(el.querySelectorAll){
                return el.querySelectorAll(selector);
            }
        }
    };
    u.byId = function(id){
        return document.getElementById(id);
    };
    u.first = function(el, selector){
        if(arguments.length === 1){
            return el.children[0];
        }
        if(arguments.length === 2){
            return this.dom(el, selector+':first-child');
        }
    };
    u.last = function(el, selector){
        if(arguments.length === 1){
            var children = el.children;
            return children[children.length - 1];
        }
        if(arguments.length === 2){
            return this.dom(el, selector+':last-child');
        }
    };
    u.eq = function(el, index){
        return this.dom(el, ':nth-child('+ index +')');
    };
    u.not = function(el, selector){
        return this.domAll(el, ':not('+ selector +')');
    };
    u.prev = function(el){
        var node = el.previousSibling;
        if(node.nodeType && node.nodeType === 3){
            node = node.previousSibling;
            return node;
        }
    };
    u.next = function(el){
        var node = el.nextSibling;
        if(node.nodeType && node.nodeType === 3){
            node = node.nextSibling;
            return node;
        }
    };
    u.closest = function(el, selector){
        var doms, targetDom;
        var isSame = function(doms, el){
            var i = 0, len = doms.length;
            for(i; i<len; i++){
                if(doms[i].isEqualNode(el)){
                    return doms[i];
                }
            }
            return false;
        };
        var traversal = function(el, selector){
            doms = u.domAll(el.parentNode, selector);
            targetDom = isSame(doms, el);
            while(!targetDom){
                el = el.parentNode;
                if(el != null && el.nodeType == el.DOCUMENT_NODE){
                    return false;
                }
                traversal(el, selector);
            }

            return targetDom;
        };

        return traversal(el, selector);
    };
    u.remove = function(el){
        if(el && el.parentNode){
            el.parentNode.removeChild(el);
        }
    };
    u.attr = function(el, name, value){
        if(arguments.length == 2){
            return el.getAttribute(name);
        }else if(arguments.length == 3){
            el.setAttribute(name, value);
            return el;
        }
    };
    u.removeAttr = function(el, name){
        if(arguments.length === 2){
            el.removeAttribute(name);
        }
    };
    u.hasCls = function(el, cls){
        if(el.className.indexOf(cls) > -1){
            return true;
        }else{
            return false;
        }
    };
    u.addCls = function(el, cls){
        if('classList' in el){
            el.classList.add(cls);
        }else{
            var preCls = el.className;
            var newCls = preCls +' '+ cls;
            el.className = newCls;
        }
        return el;
    };
    u.removeCls = function(el, cls){
        if('classList' in el){
            el.classList.remove(cls);
        }else{
            var preCls = el.className;
            var newCls = preCls.replace(cls, '');
            el.className = newCls;
        }
        return el;
    };
    u.toggleCls = function(el, cls){
       if('classList' in el){
            el.classList.toggle(cls);
        }else{
            if(u.hasCls(el, cls)){
                u.addCls(el, cls);
            }else{
                u.removeCls(el, cls);
            }
        }
        return el; 
    };
    u.val = function(el, val){ 
        if(arguments.length === 1){
            switch(el.tagName){
                case 'SELECT':
                    var value = el.options[el.selectedIndex].value;
                    return value;
                    break;
                case 'INPUT':
                    return el.value;
                    break;
                case 'TEXTAREA':
                    return el.value;
                    break;
            }
        }
        if(arguments.length === 2){
            switch(el.tagName){
                case 'SELECT':
                    el.options[el.selectedIndex].value = val;
                    return el;
                    break;
                case 'INPUT':
                    el.value = val;
                    return el;
                    break;
                case 'TEXTAREA':
                    el.value = val;
                    return el;
                    break;
            }
        }
        
    };
    u.prepend = function(el, html){
        el.insertAdjacentHTML('afterbegin', html);
        return el;
    };
    u.append = function(el, html){
        el.insertAdjacentHTML('beforeend', html);
        return el;
    };
    u.before = function(el, html){
        el.insertAdjacentHTML('beforebegin', html);
        return el;
    };
    u.after = function(el, html){
        el.insertAdjacentHTML('afterend', html);
        return el;
    };
    u.html = function(el, html){
        if(arguments.length === 1){
            return el.innerHTML;
        }else if(arguments.length === 2){
            el.innerHTML = html;
            return el;
        }
    };
    u.text = function(el, txt){
        if(arguments.length === 1){
            return el.textContent;
        }else if(arguments.length === 2){
            el.textContent = txt;
            return el;
        }
    };
    u.offset = function(el){
        var sl, st;
        if(document.documentElement){
            sl = document.documentElement.scrollLeft;
            st = document.documentElement.scrollTop;
        }else{
            sl = document.body.scrollLeft;
            st = document.body.scrollTop;
        }
        var rect = el.getBoundingClientRect();
        return {
            l: rect.left + sl,
            t: rect.top + st,
            w: el.offsetWidth,
            h: el.offsetHeight
        };
    };
    u.css = function(el, css){
        if(typeof css == 'string' && css.indexOf(':') > 0){
            el.style && (el.style.cssText += ';' + css);
        }
    };
    u.cssVal = function(el, prop){
        if(arguments.length === 2){
            var computedStyle = window.getComputedStyle(el, null);
            return computedStyle.getPropertyValue(prop);
        }
    };
    u.jsonToStr = function(json){
        if(typeof json === 'object'){
            return JSON && JSON.stringify(json);
        }
    };
    u.strToJson = function(str){
        if(typeof str === 'string'){
            return JSON && JSON.parse(str);
        }
    };
    u.setStorage = function(key, value){
        if(arguments.length === 2){
            var v = value;
            if(typeof v == 'object'){
                v = JSON.stringify(v);
                v = 'obj-'+ v;
            }else{
                v = 'str-'+ v;
            }
            var ls = uzStorage();
            if(ls){
                ls.setItem(key, v);
            }
        }
    };
    u.getStorage = function(key){
        var ls = uzStorage();
        if(ls){
            var v = ls.getItem(key);
            if(!v){return;}
            if(v.indexOf('obj-') === 0){
                v = v.slice(4);
                return JSON.parse(v);
            }else if(v.indexOf('str-') === 0){
                return v.slice(4);
            }
        }
    };
    u.rmStorage = function(key){
        var ls = uzStorage();
        if(ls && key){
            ls.removeItem(key);
        }
    };
    u.clearStorage = function(){
        var ls = uzStorage();
        if(ls){
            ls.clear();
        }
    };

   
    /*by king*/
    u.fixIos7Bar = function(el){
        var strDM = api.systemType;
        if (strDM == 'ios') {
            var strSV = api.systemVersion;
            var numSV = parseInt(strSV,10);   
            var fullScreen = api.fullScreen;
            var iOS7StatusBarAppearance = api.iOS7StatusBarAppearance;
            if (numSV >= 7 && !fullScreen && iOS7StatusBarAppearance) {
                el.style.paddingTop = '20px';
            }
        }
    };
    u.toast = function(title, text, time){
        var opts = {};
        var show = function(opts, time){
            api.showProgress(opts);
            setTimeout(function(){
                api.hideProgress();
            },time);
        };
        if(arguments.length === 1){
            var time = time || 500;
            if(typeof title === 'number'){
                time = title;
            }else{
                opts.title = title+'';
            }
            show(opts, time);
        }else if(arguments.length === 2){
            var time = time || 500;
            var text = text;
            if(typeof text === "number"){
                var tmp = text;
                time = tmp;
                text = null;
            }
            if(title){
                opts.title = title;
            };
            if(text){
                opts.text = text;
            };
            show(opts, time);
        }
        if(title){
            opts.title = title;
        };
        if(text){
            opts.text = text;
        };
        time = time || 500;
        show(opts, time);
    };
    u.post = function(/*url,data,fnSuc,dataType*/){
        var argsToJson = parseArguments.apply(null, arguments);
        var json = {};
        var fnSuc = argsToJson.fnSuc;
        argsToJson.url && (json.url = argsToJson.url);
        argsToJson.data && (json.data = argsToJson.data);
        if(argsToJson.dataType){
            var type = toLowerCase(argsToJson.dataType);
            if (type == 'text'||type == 'json') {
                json.dataType = type;
            }
        }else{
            json.dataType = 'json';
        };
        json.method = 'post';
        api.ajax(json,
            function(ret,err){
                if (ret) {
                    fnSuc && fnSuc(ret);
                };
            }
        );
    };
    u.get = function(/*url,fnSuc,dataType*/){
        var argsToJson = parseArguments.apply(null, arguments);
        var json = {};
        var fnSuc = argsToJson.fnSuc;
        argsToJson.url && (json.url = argsToJson.url);
        //argsToJson.data && (json.data = argsToJson.data);
        if(argsToJson.dataType){
            var type = toLowerCase(argsToJson.dataType);
            if (type == 'text'||type == 'json') {
                json.dataType = type;
            }
        }else{
            json.dataType = 'text';
        };
        json.method = 'get';
        api.ajax(json,
            function(ret,err){
                if (ret) {
                    fnSuc && fnSuc(ret);
                };
            }
        );
    };

/*end*/  
    

    window.$api = u;

})(window);

和Zepto一样,适用于移动前端开发框架,不适用与桌面设备。

.trim()

  • 描述:去掉字符串首尾空格
  • 用法:trim(str)
  • 参数: str (类型:String)
  • 返回值:去除首尾空格的字符串
  • 示例:
    $api.trim('   abc  123   ');  // => "abc  123"
    

.trimAll()

  • 描述:去掉字符串所有空格
  • 用法:trimAll(str)
  • 参数:str (类型:String)
  • 返回值:去除所有空格的字符串
  • 示例:
    $api.trimAll('  abc 123  ');  // => "abc123"
    

.isArray()

  • 描述:判断对象是否为数组
  • 用法:.isArray(obj)
  • 参数: obj (类型:Object)
  • 返回值:Boolean
  • 示例:
    $api.isArray([1,2,3]);  // => true
    $api.isArray('123')  // => false
    

.addEvt()

  • 描述:为DOM元素绑定事件
  • 用法:.addEvt(el, name, fn, useCapture)
  • 参数:el (类型:Element):DOM元素

    name (类型:String):事件类型

    fn (类型:Function):事件回调

    useCapture (类型:Boolean):事件捕获,默认为 false

  • 示例:
    $api.addEvt(element, 'click', function(){
    //do something
    });
    

.rmEvt()

  • 描述:移除DOM元素绑定的事件
  • 用法:.rmEvt(el, name, fn, useCapture)
  • 参数:el (类型:Element):DOM元素

    name (类型:String):事件类型

    fn (类型:Function):事件回调

    useCapture (类型:Boolean):事件捕获,默认为 false

  • 示例:
    $api.rmEvt(element, 'click', function(){
    //do something
    });
    

.one()

  • 描述:为DOM元素绑定事件,事件只执行一次
  • 用法:.one(el, name, fn, useCapture)
  • 参数:el (类型:Element):DOM元素

    name (类型:String):事件类型

    fn (类型:Function):事件回调

    useCapture (类型:Boolean):事件捕获,默认为 false

  • 示例:
    $api.one(element, 'click', function(){
    //do something
    });
    

.dom()

  • 描述:选择首个匹配的DOM元素
  • 用法:.dom(el, selector)

    从el元素开始查找

  • 参数:
    el (类型:Element):DOM元素selector (类型:Selector):CSS 选择器
  • 返回值: 返回首个匹配的DOM元素
  • 示例:
    $api.dom(el, '#id');
    $api.dom(el, '.list[type="text"]');
    

    .dom(selector)

从document元素开始查找

  • 参数: selector (类型:Selector):CSS 选择器
  • 返回值:返回首个匹配的DOM元素
  • 示例:
    $api.dom('#id');
    $api.dom('.list[type="text"]');
    

.domAll()

  • 描述:选择所有匹配的DOM元素
  • 用法:.domAll(el, selector)

    从el元素开始查找

  • 参数:el (类型:Element):DOM元素

    selector (类型:Selector):CSS 选择器

  • 返回值: 返回所有匹配的DOM元素
  • 示例:
    $api.domAll(el, '.class');
    $api.dom(el, '.list:fist-child');
    

    .domAll(selector)

从document元素开始查找

  • 参数: selector (类型:Selector):CSS 选择器
  • 返回值:返回所有匹配的DOM元素
  • 示例:
    $api.domAll('.class');
    $api.dom('.list:fist-child');
    

.byId()

  • 描述:通过Id选择DOM元素
  • 用法:.byId(id)
  • 参数: id(类型:String):CSS id 字符串
  • 返回值: 返回匹配的DOM元素
  • 示例:
    $api.byId('idStr')
    

.first()

  • 描述:选择DOM元素的第一个子元素
  • 用法:.first(el, selector)
  • 参数: el (类型:Element):DOM元素
  • 返回值: 返回DOM元素的第一个子元素
  • 示例:
    $api.first(el,'li');
    

    first(el)

  • 参数:el (类型:Element):DOM元素
  • 返回值:返回DOM元素的第一个子元素
  • 示例:
    $api.first(el);
    

.last()

  • 描述:选择DOM元素的最后一个子元素
  • 用法:.last(el, selector)
  • 参数: el (类型:Element):DOM元素
  • 返回值: 返回DOM元素的最后一个子元素
  • 示例:
    $api.last(el,'li');
    

    .last(el)

  • 参数: el (类型:Element):DOM元素
  • 返回值:返回DOM元素的最后一个子元素
  • 示例:
    $api.last(el);
    

.eq()

  • 描述:选择第几个子元素
  • 用法:.eq(el, index)
  • 参数:el (类型:Element):DOM元素

    index (类型:String | Number):索引值

  • 返回值:根据索引值返回子元素
  • 示例:
    $api.eq(el, 2);
    $api.eq(el, '2');
    

    .not()

  • 描述:根据排除选择器选择子元素
  • 用法:.not(el, selector)
  • 参数:el (类型:Element):DOM元素

    selector (类型:Selector):CSS 选择器

  • 返回值:返回不匹配选择器的所有子元素
  • 示例:
    $api.not(el, '.active');
    

.prev()

  • 描述:选择相邻的前一个元素
  • 用法:.prev(el)
  • 参数:el (类型:Element):DOM元素
  • 返回值:返回前一个元素
  • 示例:
    $api.prev(el);
    

.next()

  • 描述:选择相邻的下一个元素
  • 用法:.next(el)
  • 参数:el (类型:Element):DOM元素
  • 返回值:返回下一个元素
  • 示例:
    $api.next(el);
    

.contains()

  • 描述:判断某一个元素是否包含目标元素
  • 用法:.contains(parentEl, targetEl)
  • 参数:parentEl (类型:Element):DOM元素

    targetEl (类型:Element):DOM元素

  • 返回值:返回布尔值(true 或 false)
  • 示例:
    $api.contains(parentEl, targetEl);
    

.closest()

  • 描述:根据选择器匹配最近的父元素
  • 用法:.closest(el, selector)
  • 参数:el (类型:Element):DOM元素

    selector (类型:Selector):CSS 选择器

  • 返回值:根据选择器匹配最近的父元素
  • 示例:
    $api.closest(el, '.parent');
    

.remove()

  • 描述:移除DOM元素
  • 用法:.remove(el)
  • 参数:el (类型:Element):DOM元素
  • 示例:
    $api.remove(el);
    

.attr()

  • 描述:获取或设置DOM元素的属性
  • 用法:.attr(el, name, value)

设置属性值

  • 参数:el (类型:Element):DOM元素

    name (类型:String):属性名

    value (类型:String):属性值

  • 返回值: 返回当前DOM元素
  • 示例:
    $api.attr(el,'data','123');
    

    .attr(el, name)

获取属性值

  • 参数:el (类型:Element):DOM元素

    name (类型:String):属性名

  • 返回值:返回属性值
  • 示例:
    $api.attr(el,'data');
    

.removeAttr()

  • 描述:移除DOM元素的属性
  • 用法:.removeAttr(el, name)
  • 参数:el (类型:Element):DOM元素

    name (类型:String):属性名

  • 示例:
    $api.removeAttr(el, 'data')
    

.hasCls()

  • 描述:DOM元素是否含有某个className
  • 用法:.hasCls(el, cls)
  • 参数:el (类型:Element):DOM元素

    cls (类型:String):className

  • 返回值:Boolean
  • 示例:
    $api.hasCls(el, 'classname'); // => true
    

.addCls()

  • 描述:为DOM元素增加className
  • 用法:.addCls(el, cls)
  • 参数:el (类型:Element):DOM元素

    cls (类型:String):className

  • 返回值:返回当前DOM元素
  • 示例:
    $api.addCls(el, 'newclass');
    

.removeCls()

  • 描述:移除指定的className
  • 用法:.removeCls(el, cls)
  • 参数:el (类型:Element):DOM元素

    cls (类型:String):className

  • 返回值:返回当前DOM元素
  • 示例:
    $api.removeCls(el, 'newclass');
    

.toggleCls()

  • 描述:切换指定的className
  • 用法:.toggleCls(el, cls)
  • 参数:el (类型:Element):DOM元素

    cls (类型:String):className

  • 返回值:返回当前DOM元素
  • 示例:
    $api.toggleCls(el, 'display');
    

.val()

  • 描述:获取或设置常用 Form 表单元素的 value 值
  • 用法:.val(el, val)

设置表单元素value值

  • 参数:el (类型:Element):DOM元素

    val (类型:String):想设置的value值

  • 返回值:返回当前DOM元素
  • 示例:
    $api.val(el,'123');
    

    .val(el)

获取表单元素value值

  • 参数:el (类型:Element):DOM元素
  • 返回值:返回表单元素的value值
  • 示例:
    $api.val(el);
    

.prepend()

  • 描述:在DOM元素内部,首个子元素前插入HTML字符串
  • 用法:.prepend(el, html)
  • 参数:el (类型:Element):DOM元素

    html (类型:htmlString):HTML字符串

  • 返回值:返回当前DOM元素
  • 示例:
    $api.prepend(el,'<li>hello</li>');
    

.append()

  • 描述:在DOM元素内部,最后一个子元素后面插入HTML字符串
  • 用法:.append(el, html)
  • 参数:el (类型:Element):DOM元素

    html (类型:htmlString):HTML字符串

  • 返回值:返回当前DOM元素
  • 示例:
    $api.append(el,'<li>hello</li>');
    

.before()

  • 描述:在DOM元素前面插入HTML字符串
  • 用法:.before(el, html)
  • 参数:el (类型:Element):DOM元素

    html (类型:htmlString):HTML字符串

  • 返回值:返回当前DOM元素
  • 示例:
    $api.before(el,'<h1>world</h1>');
    

.after()

  • 描述:在DOM元素后面插入HTML字符串
  • 用法:.after(el, html)
  • 参数:el (类型:Element):DOM元素

    html (类型:htmlString):HTML字符串

  • 返回值:返回当前DOM元素
  • 示例:
    $api.after(el,'<h1>world</h1>');
    

.html()

  • 描述:获取或设置DOM元素的innerHTML
  • 用法:.html(el, html)

设置innerHTML

  • 参数:el (类型:Element):DOM元素

    html (类型:htmlString):HTML字符串

  • 返回值:返回当前DOM元素
  • 示例:
    $api.html(el,'<h1>world</h1>');
    

    .html(el)

获取innerHTML

  • 参数:el (类型:Element):DOM元素
  • 返回值:返回当前DOM元素的innerHTML
  • 示例:
    $api.html(el);
    

.text()

  • 描述:设置或者获取元素的文本内容
  • 用法:. text (el, txt)
  • 参数:el(类型:Element):DOM元素

    txt(类型:String):字符串

  • 返回值:当前DOM元素
  • 示例:
    var a = document.getElementById(' a');
    $api.text(a, 'text'); // => <a id='' a''>text</a>
    

    . text (el)

  • 参数:el(类型:Element):DOM元素
  • 返回值:DOM元素的文本内容
  • 示例:
    <a id='' a''>text</a>
    var a = document.getElementById(' a');
    $api.text(a); // => text
    

.offset()

  • 描述:获取元素在页面中的位置与宽高,(此为距离页面左侧及顶端的位置,并非距离窗口的位置)
  • 用法:. offset (el)
  • 参数:el(类型:Element):DOM元素
  • 返回值:该元素的位置(left,top)及宽高(width,height),返回值是json类型的,包括l,t,w,h属性
  • 示例:
    $api.offset (el);
    

.css()

  • 描述:设置所传入的DOM元素的样式,可传入多条样式
  • 用法:. css (el, css)
  • 参数:el(类型:Element):DOM元素

    css(类型:String):想要设置的CSS样式

  • 示例:
    $api.css (el,'width:800px;border:1px solid red');
    

.cssVal()

  • 描述:获取指定DOM元素的指定属性的完整的值,如800px
  • 用法:. cssVal (el, prop)
  • 参数:el(类型:Element):DOM元素

    prop(类型:String):CSS属性

  • 返回值:完整的CSS属性值
  • 示例:
    $api.cssVal(el,'width'); // => 800px
    

.jsonToStr()

  • 描述:将标准的JSON 对象转换成字符串格式
  • 用法:. jsonToStr (json)
  • 参数:json(类型:JSON)
  • 返回值:转换后的字符串
  • 示例:
    var json = {a:111, b:222};
    $api.jsonToStr(json); // => "{"a":111,"b":222}"
    

. strToJson ()

  • 描述:将JSON字符串转换成JSON对象
  • 用法:. strToJson (str)
  • 参数:str(类型:String):JSON字符串
  • 返回值:JSON对象
  • 示例:
    var a = '{"a":"111", "b":"222"}';
    $api.strToJson(a); // => Object {a: "111", b: "222"}
    

.setStorage()

  • 描述:设置localStorage数据
  • 用法:. setStorage (key,value)
  • 参数:key(类型:String):键名

    value(类型:任意类型):值

  • 示例:
    $api.setStorage('name','Tom');
    

.getStorage()

  • 描述:获取localStorage数据,必须与$api.setStorage()配套使用
  • 用法:. getStorage (key)
  • 参数:key(类型:String):键名
  • 返回值:localStorage中与键名对应的值
  • 示例:
    $api.getStorage('name'); // => "Tom"
    

.rmStorage()

  • 描述:清除localStorage中与键名对应的值
  • 用法:. rmStorage (key)
  • 参数:key(类型:String):键名
  • 示例:
    $api.rmStorage('name')
    

.clearStorage ()

  • 描述:清除localStorage的所有数据,慎用
  • 用法:. clearStorage ()
  • 示例:
    $api.clearStorage ();
    

.fixIos7Bar()

  • 描述:适配iOS7+系统状态栏,为传入的DOM元素增加20px的上内边距
  • 用法:. fixIos7Bar (el)
  • 参数:el (类型:Element) : DOM元素
  • 备注:自动识别iOS7+,避免应用与状态栏重叠,无法跟config.xml里面的一起使用。
  • 示例:
    $api.fixIos7Bar(header);
    

.toast()

  • 描述:延时提示框
  • 用法:.toast(title,text,time)
  • 参数:title (类型:String) : 标题(可选参数)

    text(类型:String):内容(可选参数)

    time(类型:Number):延时的时间(可选参数),单位为毫秒,默认值为500

  • 示例:
    $api.toast('你好啊');
    $api.toast(2000);
    $api.toast('你好啊',2000);
    $api.toast('你好啊','hello');
    $api.toast('演示', '延时提示框',1000);
    

.get()

  • 描述:api.ajax()方法的get方式简写
  • 用法:.get(url,fnSuc,dataType)
  • 参数:url (类型:String) : url(必传参数)

    fnSuc (类型:Function):成功回调函数(可选参数)

    dataType(类型:String):返回值的类型(可选参数),有text与json两种类型,默认为json

  • 返回值:根据dataType在成功回调函数里返回相应数据
  • 示例:
    $api.get('http://www.pm25.in/api/querys/pm2_5.json?city=beijing&token=5j1znBVAsnSf5xQyNQyq',function(ret){
    alert(ret);
    },'text');
    

.post()

  • 描述:api.ajax()方法的post方式简写
  • 用法:.post(url,data,fnSuc,dataType)
  • 参数:url (类型:String) :url(必传参数)

    data(类型:JSON): 可以有body:请求体(字符串类型)values:post参数(JSON对象)

    files:post文件(JSON对象)等参数(可选参数)

    fnSuc (类型:Function):成功回调函数(可选参数)

    dataType(类型:String):返回值的类型(可选参数),有text与json两种类型,默认为json

  • 返回值:向url地址发送ajax请求,并发送数据data,根据dataType在成功回调函数返回相应数据
  • 示例:
    $api.post('http://192.168.1.233:4321/getString',{
      body: 'String'
    },function(ret){
      alert(ret);
    },'text');

关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流