【回调列表】
$.Callbacks(flags) //回调列表对象 \\$.Callbacks('once unique stopOnFalse')
once:确保回调仅执行一次
unique:自动去重
stopOnFalse:回调返回false时立即中断后续的回调
memory:当首次调用fire后,每次add都会立即触发当前add
.add(callbacks) //回调列表中添加一个回调或回调的集合
.fire(args) //调用所有的回调
.fireWith(context, args) //指定this调用所有的回调
.fired() //判断fire|fireWith是否被调用过
.has(callback) //回调列表中是否包含一个特定的回调
.disable() //禁用回调列表对象
.lock() //锁定在其当前状态的回调列表
.locked() //判断lock是否被调用过
.remove(callbacks) //删除特定的回调或回调的集合
.empty() //从列表中删除所有的回调
【递延对象】
参考:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
$.Deferred(f) //创建一个递延对象 \\$.Deferred(f).then(f1, f2);
//类似于callback.add
.done(callbacks) //成功状态的回调
.fail(callbacks) //失败状态的回调
.then(callbacks, callbacks, [progressCallbacks]) //done与fail的结合
.progress(callbacks) //生成进度通知的回调
.always(callbacks) //请求完成时(成功或失败)的回调
//类似于callback.fire
.resolve(args) //主动成功
.resolveWith(context, args)
.reject(args) //主动失败
.rejectWith(context, args)
.notify(args) //主动通知进度
.notifyWith(context, args)
.promise() //返回promise对象(返回禁止改变状态的Deferred对象)
.promise(target) //在target对象上部署Deferred接口
.state() //获取当前状态 pending | resolved | rejectd
【ajax】
$.ajax(url, [settings]) | $.ajax([settings])
$.ajax({
url: 'xxx',
type: 'GET | POST',
async: true | false,
timeout: 5000,
cache: true | false, //为false时相当于为URL添加'?t=' + Math.random()
cache: false | true, //针对script、jsonp
dataType: 'script', //字符串(script执行后才success)
dataType: 'json', //json数据
dataType: 'jsonp', //JSONP格式
dataType: 'html', //字符串
dataType: 'text' //字符串
dataType: 'xml', //XML文档
data: '' | {} | ... , //GET时将附加到URL
global: true | false, //是否触发全局Ajax事件
...
statusCode: {
404: f1,
200: f2
}
beforeSend: function(jqXHR){}, //返回false时则取消请求
success: function(data, textStatus, jqXHR){}, //success | notmodified
error: function(jqXHR, textStatus, errorMsg){}, //null | timeout | error | abort | parsererror //Not Found ...
complete: function(jqXHR, textStatus){}
})
//html
.load(url, [data], [complete]) //载入远程HTML并插入至DOM中,如果存在对象形式的data则使用POST
url: 'xxx.html' | 'xxx.html #idSelector'
complete: function(html, textStatus, jqXHR){} //if(/success|notmodified/.test(textStatus)){}else{}
//GET
$.get(url, [data], [success], [dataType])
$.getJson(url, [data], [success])
$.getScript(url, [success]) //script执行后才success
//POST
$.post(url, [data], [success], [dataType])
//跨域jsonp
$.ajax({
url: 'path',
dataType: 'jsonp',
jsonp: 'name', //name为服务器定义
...
success: f,
error: f
})
$.ajax({
url: 'path?callback=name', //name为服务器定义
dataType: 'jsonp',
...
success: f,
error: f
})
//全局设置
$.ajaxSetup(settings) //ajax默认值
$.ajaxPrefilter([dataType], function(options, originalOptions, jqXHR){}) //ajax预处理
options:当前AJAX请求的所有参数选项
originalOptions:传递给$.ajax()方法的未经修改的参数选项
//ajax全局事件(只能绑在document上)
$(document).ajaxStart(callback) //发起一个AJAX请求时,此时没有其他活跃的AJAX请求,该请求就会触发ajaxStart事件
$(document).ajaxStop(callback) //一个AJAX请求结束时,此时没有其他活跃的AJAX请求,该请求就会触发ajaxStop事件
$(document).ajaxSend(callback) //evt, jqXHR, settings
$(document).ajaxSuccess(callback) //evt, jqXHR, settings
$(document).ajaxError(callback) //evt, jqXHR, settings, textStatus
$(document).ajaxComplete(callback) //evt, jqXHR, settings
//表单序列化(基于有效表单控件的name和value)
.serialize() //序列化成字符串
.serializeArray() //序列化成数组
$.ajax({
data: $('#myForm').serialize() | $('#myForm').find('input').serialize()
})