跨浏览器的事件绑定
2008-03-23 23:39 齐天大圣 阅读(132) 评论(0) 收藏 举报 1
function $(element)
2
{
3
_arg = arguments;
4
var result = [];
5
if(arguments.length == 1) {
6
if(Object.isString(_arg)) {
7
return document.getElementById(element);
8
}
9
return element;
10
}
11
else {
12
13
for(var i=0;i<_arg.length;i++) {
14
result.push($(_arg[i]));
15
}
16
return result;
17
18
}
19
20
}
21
22
23
function observe(element,eventName,handler)
24
{
25
element = $(element);
26
27
if(element.attachEvent) {
28
element.attachEvent("on" + eventName,handler);
29
}
30
else if(element.addEventListener) {
31
element.addEventListener(eventName,handler,true);
32
}
33
34
}
function $(element)2
{3
_arg = arguments;4
var result = [];5
if(arguments.length == 1) {6
if(Object.isString(_arg)) {7
return document.getElementById(element);8
}9
return element;10
}11
else {12

13
for(var i=0;i<_arg.length;i++) {14
result.push($(_arg[i]));15
}16
return result;17

18
}19

20
}21

22

23
function observe(element,eventName,handler)24
{25
element = $(element);26

27
if(element.attachEvent) {28
element.attachEvent("on" + eventName,handler);29
}30
else if(element.addEventListener) {31
element.addEventListener(eventName,handler,true);32
}33

34
}示例程序(包含如何取消事件冒泡 )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Untitled Page</title>
<script type="text/javascript" src="jsLib/myLib.js"></script>
</head>
<body>
<div>
1
<div>
2
<div>
3
</div>
</div>
</div>
<script type="text/javascript">
//<![CDATA[
var divs = document.getElementsByTagName("div");
for(var i = 0 ;i<divs.length; i++) {
observe(divs[i],"click",say);
}
function say(event)
{
alert(event.srcElement.innerHTML);
if(event.stopPropagation) {
event.stopPropagation();
}
else {
event.cancelBubble = true; //取消冒泡
}
}

//]]>
</script>
</body>
</html>


浙公网安备 33010602011771号