假定已有方法checkName
//无参数传递
function checkName(){
dosomething...
}
现在,对表单中某一元素通过JS添加onclick事件
一、如果不传递参数
直接这样写就可以:
obj.attachEvent("onclick",checkName);
attachEvent的第二个参数就是要调用的方法名,不用加引号,不用在方法名后加括号,
这样:obj.attachEvent("onclick","checkName")或obj.attachEvent("onclick",checkName());都是错误的写法。
或者用传统的添加事件方法也是可以的:obj.οnclick=checkName;
二、如果要传递参数
因为JS 闭包的原因,不能将参数直接传递,需要通过中间函数进行调用
obj.attachEvent("onclick",checkName2(obj));
function checkName(args){return function(){doSomethings...}}
或者obj.attachEvent("onclick",function (){checkName2(obj);});
//中间函数
function checkName(args){doSomethings...}