jquery 学习小结4

继续读书记下心得

1toggle(switch)

如果是显示,则隐藏;如果是隐藏,则显示

比如某张图片$("img").toggle();

2sligdeToggle(),自动判断以进行高度的增减的动画效果

$(function(){

$(".divFrame").click(function(){//div元素点击事件

//图片高度状态自动切换,并执行一个回调函数

$("img").slideToggle(3000,function(){

$("img").css("border","solid1px#ccc");

})

})

})

3animate动画效果

$(function(){

$("input:eq(0)").click(function(){//左移按钮点击事件

//在3000毫秒内,以动画的形式向左移动52个像素

$(".divList").animate({left:"-=52px"},3000);

})

$("input:eq(1)").click(function(){//右移按钮点击事件

//在3000毫秒内,以动画的形式向右移动52个像素

$(".divList").animate({left:"+=52px"},3000);

})

})

4动画队列

$(function(){

$("div").click(function(){//div块单击事件

$(this)

.animate({height:100},"slow")//第1列

.animate({width:100},"slow")//第2列

.animate({height:50},"slow")//第3列

.animate({width:50},"slow");//第4列

})

})

5动画的停止和延时

$("img").stop();//停止正在执行的动画

$("img").delay(2000)//延时切换图片

6ajax加载用法

使用load方法比如

$("#divtips").load("c.html);

load方法中可以加载另外一个页面的某个类别的元素,比如

$("#divtips").load("c.html.divcontent);

getJSON方法的使用,比如:

$.getJSON("UserInfo.json",function(data){

$("#divTip").empty();//先清空标记中的内容

varstrHTML="";//初始化保存内容变量

$.each(data,function(InfoIndex,Info){//遍历获取的数据

strHTML+="姓名:"+Info["name"]+"<br>";

})

})

7getScript的使用

可以在jquery中加载另外一个JS,比如

$.getScript("xxxx.js");

8异步加载XML文档

$.get("UserInfo.xml",function(data){

$("#divTip").empty();//先清空标记中的内容

varstrHTML="";//初始化保存内容变量

$(data).find("User").each(function(){//遍历获取的数据

var$strUser=$(this);

............................

9向服务端传送数据

.get以及使用.post,比如.post的例子

$.post("User_Info.aspx",

{name:encodeURI($("#txtName").val()),

sex:encodeURI($("#selSex").val())

},

function(data){

$("#divTip")

.html(data);//显示服务器返回的数据

})

当使用中文时,要用encodeUri

10序列化表单

serialize()

将所选择的dom元素转成能随ajax传递的字符串,即序列化所选的dom元素

11$.ajax()方法

可以代替其他$.get,$.post,$.getJSON等

可以设置$.ajaxSetup()设置全局的ajax选项,方便一次过设置

$.ajaxSetup({//设置全局性的Ajax选项

type:"GET",

url:"xxx.xml",

dataType:"xml"

})

12ajax的ajaxstart和ajaxstop等事件

//元素绑定全局ajaxStart事件

$("#divMsg").ajaxStart(function(){

$(this).show();//显示元素

})

//元素绑定全局ajaxStop事件

$("#divMsg").ajaxStop(function(){

$(this).html("已成功获取数据。").hide();

})

13jqueryvalidate插件例子

$(function(){

$("#frmV").validate(

{

/*自定义验证规则*/

rules:{

username:{required:true,minlength:6},

email:{required:true,email:true}

},

/*错误提示位置*/

errorPlacement:function(error,element){

error.appendTo(element.siblings("span"));

}

}

);

})

用户名:

<inputid="username"name="username"

type="text"class="txt"/>

<fontcolor="red">*</font>

<span></span>

14自动完成插件autocomplete

下载地址:http://jquery.bassistance.de/autocomplete/jquery.autocomplete.zip

$(function(){

vararrUserName=["xxx","yy".....];

$("#txtSearch").autocomplete(arrUserName,{

minChars:0,//双击空白文本框时显示全部提示数据

formatItem:function(data,i,total){

return"<I>"+data[0]+"</I>";//改变匹配数据显示的格式

},

formatMatch:function(data,i,total){

returndata[0];

},

formatResult:function(data){

returndata[0];

}

}).result(SearchCallback);//选中匹配数据中的某项数据时,调用插件的result()方法

//自定义返回匹配结果函数

functionSearchCallback(event,data,formatted){

$("#divData").html("您的选择是:"+(!data?"空":formatted));

}

//点击"查一下"按钮后,触发插件的search()方法

$("#btnSearch").click(function(){

$("#txtSearch").search();

});

15jquery插件开发

1)封装方法插件

通过jquery选择器获取对象,并为对象添加方法,然后将方法打包,封装为一个插件

2)封闭函数插件

可以直接给jquery添加静态方法,并且将函数置于jquery命名空间中,比如

$.ajax()等

插件以jquery.XXXX.js命名,如果是对象级别的插件,所有方法都依附于jquery.fn

主体对象;如果是类别级别的,依附于jquery对象,结尾都必须用分号结束;

对象级别的插件时,用jquery.fn.extend()扩展;针对类别的话,用jquery.extend()

扩展

3对象级别的例子:

;(function($){

$.fn.extend({

"focusColor":function(li_col){

vardef_col="#ccc";//默认获取焦点的色值

varlst_col="#fff";//默认丢失焦点的色值

//如果设置的颜色不为空,使用设置的颜色,否则为默认色

li_col=(li_col==undefined)?def_col:li_col;

$(this).find("li").each(function(){//遍历表项<li>中的全部元素

$(this).mouseover(function(){//获取鼠标焦点事件

$(this).css("background-color",li_col);//使用设置的颜色

}).mouseout(function(){//鼠标焦点移出事件

$(this).css("background-color","#fff");//恢复原来的颜色

})

})

return$(this);//返回jQuery对象,保持链式操作

}

});

})(jQuery);

调用例子:

<divclass="divContent">

<ulid="u1">

<span>张三</span><span>男</span><span>李四</span><span>女</span><span>王五</span><span>男</span>

</ul>

</div>

<scripttype="text/javascript">

$(function(){

$("#u1").focusColor("blue");//调用自定义的插件

})

</script>

4)类级别的元素:

;(function($){

$.extend({

"addNum":function(p1,p2){

//如果传入的数字不为空,使用传入的数字,否则为0

p1=(p1==undefined)?0:p1;

p2=(p2==undefined)?0:p2;

varintResult=parseInt(p1)+parseInt(p2);

returnintResult;

},

"subNum":function(p1,p2){

//如果传入的数字不为空,使用传入的数字,否则为0

varintResult=0;

p1=(p1==undefined)?0:p1;

p2=(p2==undefined)?0:p2;

if(p1>p2){//如果传入的参数前者大于后者

intResult=parseInt(p1)-parseInt(p2);

}

returnintResult;

}

});

})(jQuery);

使用时:

$(function(){

$("#Button1").click(function(){

$("#Text3").val(

$.addNum($("#Text1").val(),

$("#Text2").val()));

});//调用自定义的插件计算两数之和

16upload上传组件

uploadify:

下载地址:http://www.uploadify.com/download

$("#uploadify").uploadify({

'uploader':'Images/uploadify.swf',

'script':'Deal/UploadFile.ashx',

'cancelImg':'Images/cancel.png',

'folder':'Uploads/',

'queueID':'fileQueue',

'buttonImg':'Images/uploadify.jpg',

'auto':true,

'multi':true,

'fileExt':'*.jpg;*.jpeg;*.gif;*.png;*.doc;*.docx;*.xls;*.xlsx;*.pdf;*.txt',

'onComplete':function(event,queueID,fileObj,response,data){

$('ul').append(SetFileContent(fileObj));

}

})

})

functionSetFileContent(objFile){//根据上传对象返回预览的图片

varsLi="";

sLi+="<li>";

sLi+="<imgsrc='"+objFile.filePath+"'width='100'height='100'>";

sLi+="<inputtype='hidden'value='"+objFile.filePath+"'>";

sLi+="

";

sLi+="<ahref='javascript:void(0)'>删除</a>";

sLi+="</li>";

returnsLi;

}

相关推荐