jQuery通过src这个属性,对于跨域请求使用scrip标签的src请求路径
jQuery对ajax事件的三种监听方式:
1.全局事件:$(document).on(‘ajaxStart’,func);
需要监听的全局事件:
ajaxStart ajaxStop ajaxError ajaxComplete ajaxSuccess ajaxEnd
jQuery.each( [ "ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend" ], function( i, type ){
jQuery.fn[ type ] = function( fn ){
return this.on( type, fn );
};
});
//如果此时没有正在执行的请求,则触发ajaxStart事件
if ( fireGlobals && jQuery.active++ === 0 ) {
jQuery.event.trigger("ajaxStart");
}
//使用event.trigger直接触发事件
2.ajax设置回调项: beforeSend/complete/success/error
$.ajax({url:'php.html',complete:func});
3.deferred绑定方式
$.ajax(...).done(func);
序列化提交表单的函数:
表单序列换即是将需要提交的内容组合成类似:’key=value&key=value…’;
序列化用到的三个函数:
jQuery.fn.serialize();
/*
*序列化函数,筛选出表单中需要提交的数据并以序列化字符串方式返回
*/
jQuery.fn.serializeArray();
/*
* 筛选出表单中需要提交的数据并以key/value键值对的对象数组格式返回
* "{'name':'key','value':'select'{'name':'key','value':'select'}";
*/
jQuery.param(serializeArray,traditional);
/*
*将key/value键值对的对象数组序列化'key=value&key=value'
*/
jQuery.fn.serializeArray()三个步骤:
提取表单元素(map),过滤满足提交条件的表单元素(filter is(‘:disabled’) ),组合成key/value键值对的数组对象(map)
jQuery.param:将key/value成作为URI组件编码(保证key和value不会出现特殊符号)使用&连接并将空白符替换成+
如果value是函数,执行他得到真正的value
value = jQuery.isFunction( value ) ? value() : ( value == null ? “” : value );
把key和value作为URI组件编码,保证key和value不会出现特殊符号,即保证了“=”分割的正确性
s[ s.length ] = encodeURIComponent( key ) + “=” + encodeURIComponent( value );
s.join( “&” ).replace( r20, “+” );