js中的"事件"是什么?
JavaScript?创建动态页面。事件是可以被 JavaScript 侦测到的行为。 网页中的每个元素都可以产生某些可以触发 JavaScript 函数或程序的事件。
比如说,当用户单击按钮或者提交表单数据时,就发生一个鼠标单击(onclick)事件,需要浏览器做出处理,返回给用户一个结果。
主要事件表:
浏览器会监控鼠标在页面所有的行为,即使你没有添加事件处理程序。
浏览器监控时,会以当前鼠标事件所触发的对象 (一般为视觉上鼠标所处位置的DOM元素) 为起始,触发事件,如果添加了事件处理程序,则调用相应的程序。
举例:
这是最简单的页面,页面上只有一个元素:按钮。当鼠标在按钮上按下(mousedown)时,会触发mousedown事件,如果为按钮添加了处理程序,如:
//伪代码
var Fn = function(){ alert('@_@'); };
btn.onclick = Fn;
那么,Fn函数就会被触发,弹出对话框;
到了现在,并没有结束:mousedown 事件会被响应到 body 元素(奇怪吗?这就是事件的冒泡和捕获),并触发添加到 body 元素的 mousedown 事件处理程序,如果添加了的话;
依然没有结束,事件会响应到更上一层,也是时间冒泡的最顶层:document,依然会触发相应的事件处理程序。
更复杂的DOM结构,也是如此。
当在按钮上按下左键 (mousedown) ,不松开按键将光标移至它处 (mousemove) 时,首先在按钮上触发了 mousedown 事件,鼠标移动时,触发了 mousemove 事件。由于鼠标在 move 的过程之中,会经过很多元素,经过的元素都会被触发 mousemove 事件,并且冒泡。
注:事件冒泡和视觉上的布局结构是毫无关系的,这个冒泡过程仅仅依赖于dom元素的html结构(即嵌套关系)。
以上,个人浅见仅作抛砖引玉。如有错误,请高手斧正。
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!