zoukankan      html  css  js  c++  java
  • 遇到的一些Jquery,js函数

     

     
    • jQuery.merge():函数用于合并两个数组内容到第一个数组。
    <script>
    $(function () { 
        var arr = $.merge( [0,1,2], [2,3,4] );
        $("span").text(arr.join(", "));
    })
    </script>

     输出 0,1,2,2,3,4

    经常用来js对象的扩展

    •  jQuery.when():可以为多个操作指定回调函数
    $.when($.ajax("test1.html"), $.ajax("test2.html"))
      .done(function(){ alert("哈哈,成功了!"); })
      .fail(function(){ alert("出错啦!"); });
    1. deferred对象的最大优点,就是它把这一套回调函数接口,从ajax操作扩展到了所有操作。也就是说,任何一个操作----不管是ajax操作还是本地操作,也不管是异步操作还是同步操作----都可以使用deferred对象的各种方法,指定回调函数。
    2. $.when()的参数只能是deferred对象
    3. deferred.resolve()方法和deferred.reject()方法  
    4. deferred对象有三种执行状态----未完成,已完成和已失败。如果执行状态是"已完成"(resolved),deferred对象立刻调用done()方法指定的回调函数;如果执行状态是"已失败"(reject),调用fail()方法指定的回调函数;如果执行状态是"未完成",则继续等待,或者调用progress()方法指定的回调函数

    代码实例1:

    var dtd = $.Deferred(); // 新建一个Deferred对象
      var wait = function(dtd){
        var tasks = function(){
          alert("执行完毕!");
          dtd.reject(); // 改变Deferred对象的执行状态
        };
        setTimeout(tasks,5000);
        return dtd;
      };
      $.when(wait(dtd))
      .done(function(){ alert("哈哈,成功了!"); })
      .fail(function(){ alert("出错啦!"); });

    代码示例2

     $ajax: function (url, type, data, exParams) {
                //$ajax: function (url, type, data, success, error, exParams) {
                var dtf = $.Deferred();
    
                var ps = {
                    url: url,
                    type: type,
                    dataType: 'JSON',
                    contentType: 'application/json; charset=utf-8',
                    data: data || {},
                    success: function (d, s, req) {
                        //success(d, s, req);
                        dtf.resolve(d);
                    },
                    error: function (req, s, e) {
                        //error(req, s, e);
                        dtf.reject(req.responseJSON);
                    }
                };
    
                if (exParams && typeof exParams != 'undefined') {
                    ps = $.extend({}, exParams, ps);
                }
    
                if (!ps.url || typeof ps.url == 'undefined') {
                    setTimeout(function () {
                        dtf.reject({ Error: '请求地址无效', ErrorCode: -1 });
                    }, 100);
                } else {
                    $.ajax(ps);
                }
    
                return dtf.promise();
            }
        });

    点我参考链接

     $.ajax  
    $.ajax("test.html")
    .done(
        function(){
            console.log("success");
        }
    )
    .fail(
        function(){
            console.log("error");
        }
    );

    可以清晰指定多个回调函数

    function fnA(){...}
    function fnB(){...}
    $.ajax("test.html").done(fnA).done(fnB);
       
  • 相关阅读:
    基于 HTML5 WebGL 的 3D 仓储管理系统
    基于 HTML5 WebGL 的 3D “弹力”布局
    基于HTML5 Canvas 实现地铁站监控
    基于HTML5的WebGL经典3D虚拟机房漫游动画
    根据矩阵变化实现基于 HTML5 的 WebGL 3D 自动布局
    玩转 HTML5 下 WebGL 的 3D 模型交并补
    基于HTML5 Canvas WebGL制作分离摩托车
    基于HTML5 Canvas的3D动态Chart图表
    基于HTML5 Canvas的工控SCADA模拟飞机飞行
    [iOS]过渡动画之高级模仿 airbnb
  • 原文地址:https://www.cnblogs.com/qiuguochao/p/7341831.html
Copyright © 2011-2022 走看看