遇到的一些Jquery函数

时间:2022-06-04 07:30:56
 
  • jQuery.merge():函数用于合并两个数组内容到第一个数组。
<script>
$(function () {
var arr = $.merge( [,,], [,,] );
$("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,);
    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: - });
}, );
} 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);