<!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 閱讀(905)
評論(0) 編輯 收藏 所屬分類:
JavaScript