- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
jQuery事件/动画/Ajax;;Web页面经常需要和用户之间进行交互,而交互的过程中我们可能想要捕捉这个交互的过程:
比如用户点击了某个按钮、用户在输入框里面输入了某个文本、用户鼠标经过了某个位置;
浏览器需要搭建一条JavaScript代码和事件之间的桥梁;
当某个事件发生时,让JavaScript可以相应(执行某个函数),所以我们需要针对事件编写处理程序(handler);
原生事件监听方法:
事件监听方式一:在script中直接监听(很少使用)。
事件监听方式二:DOM属性,通过元素的on来监听事件。
事件监听方式三:通过EventTarget中的addEventListener来监听。
jQuery事件监听方法:
事件监听方式一:直接调用jQuery对象中的事件处理函数来监听,例如:click,mouseenter。
事件监听方式二:调用jQuery对象中的on函数来监听,使用off函数来取消监听。
;click和on的区别:
click是on的简写。它们重复监听,不会出现覆盖情况,都支持事件委托,底层用的是addEventListener。
如果on没有使用selector的话,那么和使用click是一样的。
on函数可以接受一个selector参数,用于过滤触发事件的后代元素。
on函数支持给事件添加命名空间。;click和on的this指向:
this都是指向原生的DOMElement
;我们会发现默认情况下事件是从最内层的span向外依次传递的顺序,这个顺序我们称之为事件冒泡(EventBubble);
事实上,还有另外一种监听事件流的方式就是从外层到内层(body-span),这种称之为事件捕获(EventCapture);
为什么会产生两种不同的处理流呢?
这是因为早期浏览器开发时,不管是IE还是Netscape公司都发现了这个问题;
但是他们采用了完全相反的事件流来对事件进行了传递;
IE9仅采用了事件冒泡的方式,Netscape采用了事件捕获的方式;
IE9+和现在所有主流浏览器都已支持这两种方式。
jQuery为了更好的兼容IE浏览器,底层并没有实现事件捕获。
;jQuery事件系统的规范是根据W3C的标准来制定jQuery事件对象。原始事件对象的大多数属性都被复制到新的jQuery事件对象上。如,以下原生的事件属性被复制到jQuery事件对象中:
altKey,clientX,clientY,currentTarget,data,detail,key,keyCode,offsetX,offsetY,originalTarget,pageX,pageY,relatedTarget,screenX,screenY,target,
jQuery事件对象通用的属性(以下属性已实现跨浏览器的兼容):
target、relatedTarget、pageX、pageY、which、metaKey
jQuery事件对象常用的方法:
preventDefault():取消事件的默认行为(例如,a标签、表单事件等)。
stopPropagation():阻止事件的进一步传递(例如,事件冒泡)。
要访问其它事件的属性,可以使用event.originalEvent获取原生对象。;事件冒泡在某种情况下可以帮助我们实现强大的事件处理模式–事件委托模式(也是一种设计模式)
那么这个模式是怎么样的呢?
因为当子元素被点击时,父元素可以通过冒泡可以监听到子元素的点击;
并且可以通过event.target获取到当前监听的元素;
案例:一个ul中存放多个li,使用事件委托的模式来监听li中子元素的点击事件。
;鼠标事件(MouseEvents)
.click()、.dblclick()、.hover()、.mousedown()、.mouseup()
.mouseenter()、.mouseleave()、.mousemove()
.mouseover()、.mouseout()、.contextmenu()、.toggle()
键盘事件(KeyboardEvents)
.keydown()、.keypress()、.keyup()
文档事件(DocumentLoadingEvents)
load、ready()、.unload
表单事件(FormEvents)
.blur()、.focus()、.change()、.submit()、.select()
浏览器事件(BrowserEvents)
.resize()、.scroll()
;mouseenter()和mouseleave()
不支持冒泡
进入子元素依然属于在该元
您可能关注的文档
- 铁路极简数据网解决方案.pptx
- 第五章 系统运动的稳定性2.1-5.3).ppt
- 第2章曲柄连杆机构2.ppt
- 智能机器人3.9 报警系统综合设计.ppt
- 传感器组合应用Automatic Clothes Dryer自动晾衣架.ppt
- 传感器认识Ultrasonic Dog超声波小狗.ppt
- 机器人设计教案彩蛾寻光.ppt
- 机器人搭建、编程课件06 找光机器人.pptx
- 机器人搭建、编程课件12打地鼠.pptx
- 机器人设计课程03 小狗机器人.pptx
- 2024年造型棒项目可行性研究报告.docx
- 2024至2030年中国多功能慢速录音系统行业投资前景及策略咨询研究报告.docx
- 2024年中国乘客语音综合查询系统市场调查研究报告.docx
- 2024至2030年正方体单件套玩具项目投资价值分析报告.docx
- 2024至2030年中国螺旋型节能灯行业投资前景及策略咨询研究报告.docx
- 2024年桦木棉签项目可行性研究报告.docx
- 2024年童车握把套项目可行性研究报告.docx
- 2024至2030年中国IT资产服务管理系统行业投资前景及策略咨询研究报告.docx
- 2024至2030年中国内衣洗衣球行业投资前景及策略咨询研究报告.docx
- 2024至2030年中国低碳钢线材行业投资前景及策略咨询研究报告.docx
文档评论(0)