1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
3
<head>
4
<title>JavaScript事件监听完整实例(含注释)</title>
5
<meta name="generator" content="editplus" />
6
<meta name="Keywords" content="AddEventHandler,addEventListener,attachEvent,appendChild,getElementsByTagNamem,createElement,createTextNode,IE 与FF兼容性,JavaScript事件,JavaScript监听">
7
<script type="text/javascript">
8
var oEventUtil = new Object();
9
oEventUtil.AddEventHandler = function(oTarget,sEventType,fnHandler)
10

{
11
//IE和FF的兼容性处理
12
13
//如果是FF
14
if(oTarget.addEventListener)
{
15
oTarget.addEventListener(sEventType,fnHandler,false);
16
}
17
//如果是IE
18
else if(oTarget.attachEvent)
{
19
oTarget.attachEvent('on'+sEventType,fnHandler);
20
} else
{
21
oTarget['on'+sEventType] = fnHandler;
22
}
23
};
24
25
//定义oT事件函数
26
var oT = function()
27

{
28
var oEvent = arguments[0];
29
var oTarget = oEvent.target || oEvent.srcElement;
30
alert(oTarget.tagName+'\n'+oTarget.innerHTML+'\n'+oEvent.type);
31
}
32
33
//页面加载时制造36个p,每个p里面显示的文字是Line + i
34
window.onload = function()
{
35
for(var i = 0;i<36;i++)
36

{
37
var oP = document.createElement('p');
38
var oText = document.createTextNode('Line'+i);
39
oP.appendChild(oText);
40
//在文档的第一个div里面添加这些p
41
document.getElementsByTagName('div')[0].appendChild(oP);
42
}
43
44
//找到所有的p,并添加click的事件监听
45
var oPList = document.getElementsByTagName('p');
46
for(var i = 0;i<oPList.length;i++)
47

{
48
oEventUtil.AddEventHandler(oPList[i],'click',oT);
49
}
50
}
51
</script>
52
53
54
<style type="text/css">
55
*
56
{
}{
57
margin:0px;
58
padding:0px;
59
}
60
div
61
{
}{
62
margin:10px auto;
63
width:690px;
64
border:solid 1px #000;
65
min-height:600px;
66
padding:20px;
67
}
68
69
div p
70
{
}{
71
padding:4px;
72
margin-left:4px;
73
margin-top:4px;
74
border:solid 1px blue;
75
width:100px;
76
float:left;
77
}
78
pre{
}{
79
margin:20px 0 0 0;
80
}
81
a
82
{
}{
83
text-indent:4em;
84
}
85
</style>
86
</head>
87
<body >
88
89
<div>
90
</div>
91
</body>
92
</html>

2

3

4

5

6

7



8

9

10



11

12

13

14



15

16

17

18



19

20



21

22

23

24

25

26

27



28

29

30

31

32

33

34



35

36



37

38

39

40

41

42

43

44

45

46

47



48

49

50

51

52

53

54



55

56



57

58

59

60

61



62

63

64

65

66

67

68

69

70



71

72

73

74

75

76

77

78



79

80

81

82



83

84

85

86

87

88

89

90

91

92
