<
script
>
var
EventUtil={
//省略的代码
getCharCode:
function(
event){
if(
typeof
event.
charCode==
"number"){
return
event.
charCode;
}
else{
event.
keyCode;
}
//这个方法首先检验charCode属性是否包含数值,如果是,则返回该值,否则,返回keycode.
};
<
/
script
>
<
script
>
var
textbox=
document.
getElementById(
"mytext");
EventUtil.
addHandler(
textbox,
"keypress",
function(
event){
event=
EventUtil.
getEvent(
event);
alert(
EventUtil.
getCharCode(
event));
});
加载外部JavaScript文件的代码
<
script
>
EventUtil.
addHandler(
window,
"load",
function(){
var
script=
document.
createElement(
"script");
EventUtil.
addHandler(
script,
"readystatechange",
function(
Event){
event=
EventUtil.
getEvent(
event);
var
target=
EventUtil.
getTarget(
event);
if(
target.
readyState==
"loaded"||
target.
readyState==
"complete"){
EventUtil.
removeHandler(
target,
"readystatechange",
arguments.
callee);
alert(
"script loaded");
}
});
script.
src=
"example.js";
document.
body.
appendChild(
script);
});
<
/
script
>
上面同样的编码方式也适用于通过<link>元素加载CSS文件的情况,同样,最重要的是要疫病监测readystate的两个状态,并在调用了一次事件处理程序之后就将其删除。
<
script
>
EventUtil.
addHandler(
window,
"load",
function(){
var
link=
document.
createElement(
"link");
EventUtil.
addHandler(
script,
"readystatechange",
function(
Event){
event=
EventUtil.
getEvent(
event);
var
target=
EventUtil.
getTarget(
event);
if(
target.
readyState==
"loaded"||
target.
readyState==
"complete"){
EventUtil.
removeHandler(
target,
"readystatechange",
arguments.
callee);
alert(
"script loaded");
}
});
link.
href=
"example.css";
document.
getElementsByTagName(
"head")[
0].
appendChild(
link);
});
<
/
script
>
事件委托(占内存少)
<
body
>
<
ul
id=
"mylink"
>
<
li
id=
"link1"
>e
</
li
>
<
li
id=
"link2"
>w
</
li
>
<
li
id=
"link3"
>q
</
li
>
</
ul
>
</
body
>
<
script
>
var
list=
document.
getElementById(
"mylink");
EventUtil.
addHandler(
list,
"onlick",
function(){
var
event=
EventUtil.
getEvent(
event);
var
target=
EventUtil.
getTarget(
event);
switch(
target.
id){
case
link1:
document.
title=
"I changed the document's title";
break;
case
link2:
location.
href=
"http://ww.baidu.com";
break;
case
"link3":
alert(
"hi");
break;
}
})
<
/
script
>
<
body
>
<
div
id=
"mydiv"
>
<
input
type=
"button"
value=
"Click me"
id=
"mybtn"
>
</
div
>
</
body
>
<
script
>
var
btn=
document.
getElementById(
"mybtn");
btn.
onclick=
function(){
btn.
onclick=
null;
document.
getElementById(
"mydiv").
innerHTML=
"pp";
}
<
/
script
>