遇到的一些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);

 

   
posted @ 2017-08-10 22:49  【可乐不加冰】  阅读(170)  评论(0编辑  收藏  举报