1、使用事件有以下多种途径:
- 使用传统的XHTML事件处理器属性。如<form οnsubmit="myFunction();">。
- 被关联至某个对象。如document.getElementById("myForm").onsubmit = myFunction;
- 使用诸如IE浏览器的attachEvent()这样的私有方法。
- 使用DOM2方法。如使用一个结点的addEventListener()方法,来设置事件监听器
2、触发事件有以下途径:
- 对由用户引发或JavaScript引发的动作进行响应时,由浏览器隐式触发。
- 由JavaScript使用DOM方法显式触发。如document.forms[0].submit();
- 使用诸如IE浏览器的fireEvent()这样的方法来显式触发。
- 由JavaScript使用DOM2的dispatchEvent()方法显式触发。
3、基本事件属性
- onblur
- onchange
- onclick
- ondblclick
- onfocus
- onkeydown
- onkeypress
- onkeyup
- onload
- onmousedown
- onmousemove
- onmouseout
- onmouseover
- onmouseup
- onreset
- onselect
- onsubmit
- onunload
4、非标准方式绑定事件:在<script>中使用for属性,通过id来引用一个属性,然后将事件处理器指向处理器
<script type="text/javascript" for="myemid" event="onmouseover">
******
</script>
5、使用JavaScript绑定事件:尤其是希望动态添加或移除处理器时,显得更为方便。
6、事件处理器的作用域:是其所在的对象。
7、事件处理器的返回值:可以影响事件的默认动作。取消事件的默认动作,可以通过使用事件处理器返回false来实现。使用最多的就是表单的提交。
8、手动触发事件:如document.myForm1.button1.click();
9、绑定处理器到对象:object.attachEvent("event to handle",eventHandler);要移除一个处理器,可以使用detachEvent()方法,参数与attachEvent()相同。
10、Event对象:当事件发生时,会临时创建一个Event对象,并使其可用于适当的处理器。
- srcElement:产生该事件的元素
- type:以字符串形式返回事件类型
- clientX:相对于用户区域的X坐标
- clientY:相对于用户区域的Y坐标
- screenX:相对实际屏幕的X坐标
- screenY:相对实际屏幕的Y坐标
- button:确定是哪个鼠标键被按下
- keyCode:按键的代码
- altKey:ALT键按下时为真
- ctrlKey:CTRL键按下时为真
- shiftKey:SHIFT键按下时为真
- cancelBubble:表明该事件是否应沿事件层次向上移
- returnValue:事件返回值
- fromElement:被移动的元素
- toElement:正在移动到的元素
11、事件流:在IE中,事件的行为是按照标签结构层次流动执行的。
12、DOM2事件模型:描述了创建、捕获、控制与取消事件的标准方法,IE5和IE6不支持DOM2。
13、DOM2 Event对象:
- 公用属性:bubbles(一个表示事件流的逻辑值) cancelable(一个表示事件是否可取消的逻辑值) currentTarget(当前正在运行的事件处理器的结点) eventPhase(表示事件流当前阶段的数字值) type(表示事件类型的字符串) target(事件发生时所在结点)
- 鼠标事件:与XHTML定义的相同。
14、DOM2取消默认动作:提供了Event对象的preventDefault()方法,在事件生命期的任何时期,如果处理器调用该方法,事件的默认动作就会被取消。
15、创建事件:DOM2允许使用document.createEvent()创建人工事件。