第1个回答 推荐于2018-03-29
方案一 ,未保留事件对象作为第一个参数传入
代码如下:
function handler(arg1,arg2){
alert(arg1);
alert(arg2);
}
E.on(document.getElementById('aa'),'click',function(){
handler(arg1,arg2);
});
方案二,保留事件对象作为第一个参数
代码如下:
function handler(e,arg1,arg2){
alert(e);
alert(arg1);
alert(arg2);
}
E.on(document.getElementById('aa'),'click',function(e){
handler(e,arg1,arg2);
});
方案三,给Function.prototype添加getCallback,不保留事件对象
代码如下:
Function.prototype.getCallback = function(){
var _this = this, args = arguments;
return function(e) {
return _this.apply(this || window, args);
};
}
E.on(document.getElementById('aa'),'click',handler.getCallback(v1,v2));
方案四,给Function.prototype添加getCallback,保留事件对象作为第一个参数传入
代码如下:
Function.prototype.getCallback = function(){
var _this = this, args = [];
for(var i=0,l=arguments.length;i<l;i++){
args[i+1] = arguments[i];
}
return function(e) {
args[0] = e;
return _this.apply(this || window, args);
};
}
E.on(document.getElementById('aa'),'click',handler.getCallback(v1,v2));本回答被网友采纳
第3个回答 2009-03-12
<input name="name" type="text" size="20" onblur="checkname(name)" />
这里不能这么写,这里的参数要通过this传过去,你这个写个name表示把一个叫name的变量传过去,所以不行,可以改成:
<input name="name" type="text" size="20" onblur="checkname(this)" />
第4个回答 2019-05-09
<input
name="name"
type="text"
size="20"
onblur="checkname(name)"
/>
这里不能这么写,这里的参数要通过this传过去,你这个写个name表示把一个叫name的变量传过去,所以不行,可以改成:
<input
name="name"
type="text"
size="20"
onblur="checkname(this)"
/>