《锋利的jQuery》第4-6章

第四章 jQuery中的事件和动画

1、jQuery中的事件

1)加载DOM


window.onload


$(document).ready()


执行时机


必须等待网页中所有的内容加载完毕后(包括图片)才能执行


网页中所有DOM结构绘制完毕后就执行,可能DOM元素关联的东西并没有加载完


编写多个


不能同时编写多个


能同时编写多个


简化写法



$(document).ready(function(){ });

简写成$(function(){ });

或$().ready(function(){ });

2)事件绑定:bind(type, data, fn); 第一个参数是事件类型;第二个参数是可选参数,作为event.data属性值传递给事件对象的额外数据对象;第三个参数则是用来绑定的处理函数。

3)合成事件:

hover()方法:hover(enter, leave);用于模拟光标悬停事件,当光标移动到元素上时,会触发指定的第一个函数(enter),当光标移出这个元素时,会触发指定的第二个函数(leave)。

toggle()方法:toggle(fn1, fn2, ... fnN);用于模拟鼠标连续单击事件,第一次单击时触发第一个函数(fn1),第二次单击时触发第二个函数(fn2),如果有更多函数时,则依次触发,直到最后一个;也可用于切换元素的课件状态,如果元素是可见的,单击切换后则为隐藏,如果元素是隐藏的,单击切换后则为可见。

4)事件冒泡

事件对象:$(“element”).bind(“click”, function(event){ });

停止事件冒泡:stopPropagation()方法,也可以使用 renturn false;

$(“element”).bind(“click”,function(event){ event.stopPropagation();});

$(“element”).bind(“click”,function(event){ renturn false;});

阻止默认行为:preventDefault()方法,也可以使用 renturn false;

$(“element”).bind(“click”,function(event){ event.preventDefault();});

$(“element”).bind(“click”,function(event){ renturn false;});

5)事件捕获:jQuery不支持事件捕获

6)事件对象的属性

event.type:获取事件的类型

event.stopPropagation()方法:阻止事件冒泡

event.preventDefault()方法:阻止事件的默认行为

event.target:获取触发事件的元素

event.relatedTarget:获取触发事件的相关元素

event.pageX和event.pageY:获取光标相对于页面的x坐标和y坐标

event.which:在鼠标单击事件中获取到鼠标的左中右键(which分别为1、2、3);在键盘事件中获取键盘的按键

event.metaKey:在键盘事件中获取<ctrl>按键

7)移除事件

unbind(type, data);第一个参数是事件类型,第二个参数是将要移除的函数;

one(type, data, fn);为事件绑定处理函数,当处理函数触发一次后立即被删除。

8)模拟操作

常用模拟:trigger()方法用于模拟操作,也可用于触发自定义事件;

传递数据:trigger(type, data)方法第一个参数是事件类型,第二个参数是要传递给事件处理函数的附加数据,以数组形式传递;

执行默认操作:trigger()方法触发事件后会执行浏览器的默认操作。

9)其他用法:绑定多个事件类型;添加事件命名空间,便于管理;相同事件名称,不同命名空间执行方法。

2、jQuery中的动画

1)show()方法和hide()方法:显示和隐藏匹配的元素,指定一个速度参数——normal(400毫秒)、slow(600毫秒)、fast(200毫秒)或者是指定一个数字(单位为毫秒)

2)fadeIn()方法和fadeOut()方法:改变匹配元素的透明度,让匹配的元素淡入或淡出

3)slideUp()方法和slideDown()方法:改变匹配元素的高度,让匹配的元素由下到上缩短隐藏或由上到下延伸显示

4)自定义动画animate()方法:animate(params, speed, callback);第一个参数包含样式属性及值的映射,第二个参数可选表示速度,第三个参数可选表示在动画完成时执行的函数。

5)动画回调函数

6)停止动画:stop(clearQueue, gotoEnd)方法,第一个参数表示是否要清空未执行完的动画队伍,第二个参数表示是否将正在执行的动画跳转到末状态,两个参数都是可选的Boolean值(true或false)

7)判断元素是否处于动画状态:is(“:animated”)方法

8)延迟动画:delay()方法

9)其他动画方法

toggle()方法用于切换匹配元素的可见状态

slideToggle()方法通过高度变化来切换匹配元素的可见性

fadeTo()方法通过设置元素的不透明度以渐进方式调整到指定的值

fadeToggle()方法通过不透明度变化切换匹配元素的可见性

第五章 jQuery对表单、表格的操作及更多应用

1、表单应用

1)单行文本框应用

2)多行文本框应用

3)复选框应用

4)下拉框应用

5)表单验证

2、表格应用

1)表格变色

2)表格展开关闭

3)表格内容筛选

3、其他应用

1)网页字体大小

2)网页选项卡

3)网页换肤

第六章 jQuery与Ajax的应用

1、Ajax的优势:

1)不需要插件支持

2)优秀的用户体验:能在不刷新整个页面的前提下更新数据

3)提高Web程序的性能:只需通过XMLHttpRequest对象向服务器端提交希望提交的数据,即按需发送

4)减轻服务器和带宽的负担:在客户端创建Ajax引擎,在传统方式下的一些服务器负担的工作转移到客户端,便于客户端资源来处理

2、Ajax的不足

1)浏览器对XMLHttpRequest对象的支持度不足

2)破坏浏览器“前进”、“后退”按钮的正常功能

3)对搜索引擎的支持的不足

4)开发和调试工具的缺乏

3、Ajax的XMLHttpRequest对象:发送异步请求、接收响应及执行回调

4、安装Web环境——AppServ

5、编写第一个Ajax例子

1)定义一个函数,通过该函数来异步获取信息

function Ajax(){

//...

}

2)声明一个空对象用来装入XMLHttpRequest对象

var xmlHttpReq = null;

3)给XMLHttpRequest对象赋值

If (window.ActiveObject){

xmlHttpReq = new Active XObject(“Microsoft.XMLHTTP”);

}else If (window.XMLHttpRequest){

xmlHttpReq = new XMLHttpRequest();

}

4)初始化XMLHttpRequest对象

xmlHttpReq.open(“GET”, “test.php”, true);

5)注册回调事件处理器

xmlHttpReq.onreadystatechange = RequestCallBack;

function RequestCallBack(){

if (xmlHttpReq.readyState == 4){ //请求完成加载

if (xmlHttpReq.readyState == 200){ //响应成功

//...

}

}

}

6)发送请求

xmlHttpReq.send(null);

6、jQuery中的Ajax:最底层方法$.ajax(),第二层方法load()、$.get()、$.post(),第三层方法$.getScript()、$.getJSON()

1)load()方法:load(url, data, callback)第一个参数表示请求HTML页面的URL地址,第二个参数可选表示发送至服务器的key/value数据,第三个参数可选表示请求完成时的回调函数;如果没有参数data传递则采用GET方式传递,反之则会自动转换为POST方式;回调函数有三个参数,分别表示请求返回的内容、请求状态(success、error、notmodified、timeout)和XMLHttpRequest对象;在load()方法中,无论Ajax请求是否成功,只要当请求完成后,回调函数就被触发。

2)$.get()方法:$.get(url, data, callback, type)第一个参数表示请求HTML页面的URL地址,第二个参数可选表示发送至服务器的key/value数据,第三个参数可选表示载入成功时的回调函数,第四个参数表示服务器端返回内容的格式(xml、html、script、json、text和_default);回调函数有两个参数,分别表示请求返回的内容、请求状态(success、error、notmodified、timeout);在$.get()方法中,只有当数据成功返回请后,回调函数才会被触发。

3)$.post()方法:与$.get()方法的结构和使用方式都相同


$.get()方法


$.post()方法


请求的参数


跟在URL后进行传递


作为HTTP信息的实体内容发送给Web服务器


传输的数据大小


不大于2KB


理论上不受限制


安全性


请求的数据会被浏览器缓存起来,不安全


相对安全


传递的数据在服务器端的获取方式


$_GET[]或者$_REQUEST[]


$_POST[]或者$_REQUEST[]

4)$.getScript()方法:用于加载.js文件;$.getScript()方法会在JavaScript文件成功载入后运行回调函数。

5)$.getJSON()方法:用于加载JSON文件;$.getJSON()方法会在JSON文件成功载入后运行回调函数。

6)$.ajax(options)方法

7、序列化元素

1)serialize()方法作用于一个jQuery对象,将DOM元素内容序列化为字符串,用于Ajax请求

2)serializeArray()方法作用于一个jQuery对象,将DOM元素内容序列化为字符串JSON格式的数据

3)$.param()方法用于对一个数组或对象按照key/value进行序列化

8、jQuery中的Ajax全局事件


方法名称


说明


ajaxStart(callback)


Ajax请求开始时执行的函数


ajaxStop(callback)


Ajax请求结束后执行的函数


ajaxComplete(callback)


Ajax请求完成时执行的函数


ajaxError(callback)


Ajax请求发生错误时执行的函数,捕捉到的错误可以作为最后一个参数传递


ajaxSend(callback)


Ajax请求发送前执行的函数


ajaxSuccess(callback)


Ajax请求成功时执行的函数

时间: 2024-10-08 13:36:51

《锋利的jQuery》第4-6章的相关文章

《锋利的jQuery》第六章

1.Ajax模式只是通过XMLHttpRequest对象向服务器端提交希望提交的数据,即按需发送. 2.Ajax工作原理:相当于在用户和服务器之间加了一个中间层,使用户操作与服务器响应异步化.在客户端创建Ajax引擎,把传统方式下的服务器端负担的工作转移到客户端,便于客户端资源来处理,减轻服务器和贷款的负担. 3.通过传统的Javascript的Ajax方式从服务器端取回一个"Hello Ajax"的字符串并显示在页面上. <script type="text/java

《锋利的jQuery》第5章

一.总结第五章写过的小例子: 1.单行文本框应用,为文本框添加获得和失去焦点的应用. 2.多行文本框应用,点击"放大"或"缩小"按钮,让字放大或缩小. 3.复选框应用,"全选","全不选","反选","提交" <script type="text/javascript"> $(function(){ //全选操作 $("#CheckedAll&q

锋利的jQuery第二章

感觉还是看书好一些,jQuery并不难,但是对于一些东西如果你不知道,你就会感觉到很头疼,比如以前看选择器,网上那么多文章,总结的挺好的,但是不能看下去,太多了,对电脑不爽.现在从书上看到这些总结,感觉很清晰,也可以接受. 1,用jQuery判断某个元素是否存在 if($("#tt").length > 0) { //使用长度判断 } if( $("#tt")[0] ) { //转为Dom对象判断 } 2,选择器,根据例子记忆很好理解 (1)基本选择器:id,

锋利的jQuery第一章

以前总是感觉js,html,css,jquery这些东西太繁杂,看着都头晕,想着做后台,不用管这些东西,可是工作之中发现,很多前台后台结合 的地方,比如通过ajax发送到后台,如果不懂得jQuery,感觉很被动,于是,我也不管那么多了,从现在开始学习jQuery了. 我喜欢看书本学习,以后博客将记录我学习的笔记: 1,window.reload()和$(document).ready()的区别: 2,有关菜单的代码: <!DOCTYPE html PUBLIC "-//W3C//DTD X

锋利的jQuery第三章

现在开始学习第三章,jQuery中的Dom操作. 以前我也看过w3school的dom,看过了很迷,不知道dom是什么. 1,dom是文档对象模型,dom操作分为3类:Dom Core(核心),HTML-DOM,CSS-DOM (1)Dom Core(核心):主要有getElementById(),getElementByTagName(),getAttribute()和setAttribute()等方法. (2)HTML-DOM:如 document.forms //取得forms对象; el

锋利的jQuery第四章:jQuery中的事件和动画

第一部分 1, (1)$()是$(document)的简写,默认参数是document. $(function(){}是$(document).ready(function(){})的简写. 2, (1)事件绑定 bind(type [,data],fn); type是事件类型,有blur,focus,load,resize,scroll,unload,click,dbclick,mousedown,mouseup, mouseover,mousemove,mouseout,mouseenter

锋利的jQuery第5章 jQuery对表单、表格的操作及更过应用

1,button和checkbox的例子: form表单 <form action=""> 你爱的远动有?<br /> <input type="checkbox" name="items" value="足球" />足球 <input type="checkbox" name="items" value="蓝球" />

锋利的jQuery读书笔记 第1章、第2章

第一章 一.常见的JavaScript类库 1.Prototype 2.Dojo 3.Yui 4.Ext JS 5.MooTools 6.jQuery 二.jQuery对象和DOM对象 1.DOM对象 文档对象模型,每一份DOM都可以表示成一颗树. 2.jQuery对象 jQuery对象就是通过jQuery包装DOM对象后产生的对象. (1)jQuery对象是jQuery对象独有的.如果一个对象是jQuery对象,那么就可以使用jQuery对象里的方法. (2)在jQuery对象中无法使用DOM

【锋利的jQuery】中全局事件ajaxStart、ajaxStop不执行

最近一直都在研究[锋利的jQuery],确实是一本好书,受益匪浅.但由于技术发展及版本更新等原因,里面还是有些坑需要踩的. 比如:第六章七节中提到的全局事件ajaxStart.ajaxStop照着案例敲结果并不会执行. 在查阅资料后,发现原来在jquery1.9+版本以后,ajax全局事件需绑定到document对象上才能触发. 下面是各版本不同写法: <html> <head> <meta charset="utf-8"> <style>