JavaScript怎么给onfocus这样的内部事件传递参数

pgmsoul 2012-09-29 11:02:08
HTML代码里可以写
<input type="text" onfocus='onFocus(this);'>

如果动态的用JavaScript怎么传这样的类似this的参数.

var text_box = document.getElementById("box");
text_box.onfocus = onFocus;//这里有没有什么办法把this之类的参数让它响应的时候, 自动处理.
...全文
366 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
pgmsoul 2012-09-29
  • 打赏
  • 举报
回复
this那个最简单了, 怎么没想到呢?

还找到了一个闭包的方法

obj.onfocus = (function(param){
return function(){
//回调的时候, param就是想传的参数.
}
})(param);

如果仅仅是方法对象本身, this最直接了, 其它参数其实可以用对象的属性来传递, 这样连闭包都用不着.
pgmsoul 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]

text_box.onfocus = function(e){

//e:表示事件参数 事件参数里面可以拿到触发事件的对象
};
[/Quote]

不行, e是undefined, arguments也不行, length是0
KK3K2005 2012-09-29
  • 打赏
  • 举报
回复
text_box.onfocus = function(e){

//e:表示事件参数 事件参数里面可以拿到触发事件的对象
};
lw5853103 2012-09-29
  • 打赏
  • 举报
回复
我上面写的例子可能有不合时宜的地方 但是原理是可以的 你可以适当的改一下
scscms太阳光 2012-09-29
  • 打赏
  • 举报
回复
<input type="text" value="1">
<input type="text" value="2">
<input type="text" value="3">
<script type="text/javascript">
var input=document.getElementsByTagName("input");
for(var i=0;i<input.length;i++){
input[i].onfocus=function(){
alert(this.value);
}
}
</script>
lw5853103 2012-09-29
  • 打赏
  • 举报
回复
text_box.onfocus = onFocus;//这里有没有什么办法把this之类的参数让它响应的时候, 自动处理.

谁调用了onfocus,this就代表调用对象的引用.
监听事件默认的第一个参数是event对象,可以用arguments[0]取到
book523 2012-09-29
  • 打赏
  • 举报
回复
js的事件都有一个隐含参数arguments,可以使用调试模式查看参数的具体信息
var oT = function()
{
var oEvent = arguments[0]; //事件
var oTarget = oEvent.srcElement || oEvent.target ; //获取发生事件的目标(IE为srcElement ,火狐是target)
oTarget.style.color='red'; //事件目标字体变红色
}
lw5853103 2012-09-29
  • 打赏
  • 举报
回复
如果你直接写在window下面,参数可以用全局变量
var a = 1 , b= 2;
window.onload = function(){
var text_box = document.getElementById("box");
text_box.onfocus = function(){

return a+b;

};
}

如果你定义在类里面

function A(arg0 , arg1){
this.a = arg0;
this.b = arg1;
}
A.prototype.fnOnFocus = function(){
var me = this;
return me.a+me.b;
}

87,922

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧