<html>
<head>
<title></title>
<script>
function init(){
var _obj = document.getElementById("ck");
var d=document.getElementById("myDate");
var args=[_obj,d];
// _obj.onclick=function(){bb(_obj,d)} 覆盖之前的onclick函数
Pen.util.addEvent(_obj,"onclick",bb,args); //不会覆盖之前的onclick函数
}
function bb(){
if(arguments.length!=2) throw new Error("参数不正确!");
var obj=arguments[0];
var dat=arguments[1];
var date=new Date();
var month=date.getMonth()+1;
var day=date.getDate();
if(month<10){
month='0'+month;
}
if(day<10){
day='0'+day;
}
var d=date.getFullYear()+"-"+month+"-"+day;
if(obj.checked){
dat.value=d;
}else{
dat.value="";
}
}
function aa(){
alert()
}
var Pen={};
Pen.util={
/**
* 功能:为指定的表单元素动态添加事件
*@param obj 要为其添加事件的元素对象
*@param eventName 事件名称
*@param eventFunction 事件要执行的函数
*@param args 为函数传递的参数数组(多个参数都要放在args数组里面)
*/
addEvent:function(obj,eventName,eventFunction,args){
if(window.addEventListener) //firefox浏览器
{
obj .addEventListener(eventName,function(){ exeFunc(eventFunction,args)}, false);
}
else //IE浏览器
{
obj.attachEvent(eventName,function(){ exeFunc(eventFunction,args)});
}
}
};
var exeFunc=function(eventFunction,args){
if(args==undefined || args.length==0) eventFunction();
else if(args.length==1) eventFunction(args[0]);
else if(args.length==2) eventFunction(args[0],args[1]);
else if(args.length==3) eventFunction(args[0],args[1],args[2]);
else if(args.length==4) eventFunction(args[0],args[1],args[2],args[3]);
else if(args.length==5) eventFunction(args[0],args[1],args[2],args[3],args[4]);
else if(args.length==6) eventFunction(args[0],args[1],args[2],args[3],args[4],args[5]);
else if(args.length==7) eventFunction(args[0],args[1],args[2],args[3],args[4],args[5],args[6]);
else if(args.length==8) eventFunction(args[0],args[1],args[2],args[3],args[4],args[5],args[6],args[7]);
else throw new Error("参数越界错误");
}
</script>
</head>
<body onload="init()">
<input type="checkbox" id="ck" onclick="aa()"> <input type="text" id="myDate">
</body>
</html>
详细解决方案
替指定的表单元素动态添加事件
热度:209 发布时间:2012-11-22 00:16:41.0
相关解决方案