事件:就是对元素的操作,指用户在某事务上由于某种行为所执行的操作;
函数与事件的关系:所有的事件都会依赖函数执行。
事件的三要素:
①事件源:是一个名词,指在哪个元素身上引发事件;
②事件:是一个动词,也就是要执行的那个动作;
③事件处理程序:函数,也就是做完动作后会执行的操作;
eg: oBth 事件源;onclick 事件;function 事件处理程序; oBth.onclick = function(){ }
事件的种类(只列举了我常用的某些事件):
①页面事件:onload 页面加载事件(页面打开后执行);onunload 页面卸载事件(页面关闭时执行)
②鼠标事件:onclick 单击;ondblclick 双击;onmousedown 按下;nomouseup 抬起;onmouseover 移入(悬停);onmouseout 移出;onmouseenter 移入;onmouseleaver 移出;onmousemove 移动;oncontextmenu 右键单击
③键盘事件:onkeyup 抬起;onkeydown 按下;onkeypress 按下+抬起
④其他事件(一般用于表单):onsubmit 表单提交事件(一般用于表单验证);onchange 改变(一般用于下拉列表);onblur 失去焦点;onfocus 获取焦点
事件应用:
事件源.事件 = function(){ 执行代码 }
如何操作页面元素:(DOM中的获取元素)
操作样式:页面元素.style.样式=值;
操作内容:
①操作表单:页面元素.value=值 //属性操作
②操作非表单:页面元素.innerHTML=值
操作标签属性:如<img src="">
页面元素.属性=值
*event:事件对象(有兼容,我会单独写一个关于js的兼容的文本)
事件对象,听名字就知道是在事件中用的,当触发一个事件的时候,就会产生一个事件对象,不同的事件的事件对象不同。
event中的属性和方法较多,因此这里用我看到的别人写的一个比较全面的例子:
Event属性和方法: 1. type:事件的类型,如onlick中的click; 2. srcElement/target:事件源,就是发生事件的元素; 3. button:声明被按下的鼠标键,整数,1代表左键,2代表右键,4代表中键,如果按下多个键,酒把这些值加起来,所以3就代表左右键同时按下;
(firefox中 0代表左键,1代表中间键,2代表右键) 4. clientX/clientY:事件发生的时候,鼠标相对于浏览器窗口可视文档区域的左上角的位置;(在DOM标准中,这两个属性值都不考虑文档的滚动情况,
也就是说,无论文档滚动到哪里,只要事件发生在窗口左上角,clientX和clientY都是 0,所以在IE中,要想得到事件发生的坐标相对于文档开头的位置,要加上 document.body.scrollLeft和 document.body.scrollTop) 5. offsetX,offsetY/layerX,layerY:事件发生的时候,鼠标相对于源元素左上角的位置; 6. x,y/pageX,pageY:检索相对于父要素鼠标水平坐标的整数; 7. altKey,ctrlKey,shiftKey等:返回一个布尔值; 8. keyCode:返回keydown何keyup事件发生的时候按键的代码,以及keypress 事件的Unicode字符;(firefox2不支持 event.keycode,可以用 event.which替代 ) 9. fromElement,toElement:前者是指代mouseover事件中鼠标移动过的文档元素,后者指代mouseout事件中鼠标移动到的文档元素; 10. cancelBubble:一个布尔属性,把它设置为true的时候,将停止事件进一步起泡到包容层次的元素;(e.cancelBubble = true; 相当于 e.stopPropagation();) 11. returnValue:一个布尔属性,设置为false的时候可以组织浏览器执行默认的事件动作;(e.returnValue = false; 相当于 e.preventDefault();) 12. attachEvent(),detachEvent()/addEventListener(),removeEventListener:为制定 DOM对象事件类型注册多个事件处理函数的方法,
它们有两个参数,第一个是事件类型,第二个是事件处理函数。在 attachEvent()事件执行的时候,this关键字指向的是window对象,而不是发生事件的那个元素; 13. screenX、screenY:鼠标指针相对于显示器左上角的位置,如果你想打开新的窗口,这两个属性很重要;
还有一些别的说明,这里是链接:http://www.cnblogs.com/zxktxj/archive/2012/02/26/2369176.html;想看的可以了解。