posts - 495,comments - 227,trackbacks - 0
<!doctype html public"-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk"/>
<title>new document </title>
</head>

<script type="text/javascript">
window.$
= function(id) {
if(typeof id =='string') {
return document.getElementById(id);
}
return id;
}

/**
* 事件处理工具类
*/
var Event
= {}

Event
= {

/**
* 为 element 使用 handler 处理程序添加至 event 事件
* 兼容 IE 及 Firefox 等浏览器
*
* 例如为 botton 对象添加 onclick 事件,使用 clickEvent
* 方法作为处理程序:
* Event.addEvent(botton, 'click', clickEvent);
*
*
@param element 需要添加事件的对象(Object)
*
@param event 需要添加的事件名称(String),不加“on”
*
@param handler 需要添加的方法引用(Function)
*/
addEvent : function(element, event, handler) {
if(element.attachEvent) {
element.attachEvent(
'on'+ event, handler);
}
elseif (element.addEventListener) {
element.addEventListener(event, handler,
false);
}
else {
element[
'on'+ event] = handler;
}
},

/**
* 添加事件处理程序时,只能添加一个方法的引用,并不能给
* 方法加上参数。比如定义了 clickEvent(str) 这个方法,现
* 在要将其作为 obj 的 onclick 的事件处理程序,就可以用:
* obj.onclick = Event.getFuntion(null, clickEvent, str);
*
*
@param obj 需要绑定事件处理函数的所有者,null 表示 window 对象
*
@param fun 需要绑定的事件处理函数名
*
@param ... 第三个参数开始为绑定事件处理函数的参数,由 0 到多个构成
*/
getEventHandler : function(obj, fun) {
var args
= [];
obj
= obj || window;
for(var i =2; i < arguments.length; i++) {
args.push(arguments[i]);
}
return function() {
fun.apply(obj, args);
};
}
}

function show(txtObj) {
alert(txtObj.value);
txtObj.focus();
txtObj.select();
}

window.onload
= function() {
// var fun = Event.getEventHandler(window, show, $('txt'));
// Event.addEvent($('btn'), 'click', fun);
$('btn').onclick = Event.getEventHandler(null, show, $('txt'));
}
</script>

<body>
<div id="content">
<form>
<input type="text" name="txt" id="txt"><br />
<input type="button" name="btn" id="btn" value="click">
</form>
</div>
</body>

</html>
posted on 2008-11-30 11:50 SIMONE 阅读(899) 评论(0)  编辑  收藏 所属分类: JavaScript

只有注册用户登录后才能发表评论。


网站导航: