为何对创建的对像添加事件无效呢? 为何我为DIV添加的onclick事件无效呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 <BODY bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"><script language="javascript" type="text/JavaScript">var Data = new Array();Data[0] = [0, 'aaa'];Data[1] = [1, 'bbb'];Data[2] = [2, 'ccc'];for(var i=0; i<Data.length; i++){ var DIV = document.createElement('div'); DIV.style.cssText = 'width:80px; height:18px; border:1px #7d7d7d solid;'; DIV.innerText= Data[i][1]; DIV.i= Data[i][0]; DIV.onclick=function(){alert(this.i)}; document.body.insertAdjacentElement('beforeEnd', DIV);}</script></BODY></HTML> <BODY bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0"><script language="javascript" type="text/JavaScript">var Data = new Array();Data[0] = [0, 'aaa'];Data[1] = [1, 'bbb'];Data[2] = [2, 'ccc'];for(var i=0; i<Data.length; i++){ var DIV = document.createElement('div'); DIV.style.cssText = 'width:80px; height:18px; border:1px #7d7d7d solid;'; DIV.innerText= Data[i][1]; DIV.onclick=new Function("alert("+Data[i][0]+")"); document.body.insertAdjacentElement('beforeEnd', DIV);}</script></BODY></HTML> 能解释下new Function吗? 也可以用DIV.attachEvent("onclick", new Function("alert(" + Data[i][0] + ")"));不是你添加的onclick事件无效,而是函数里的语法是要到函数执行时才解析的,这时候你的Data[i][0]里的i就变成未有定义了,于是解析出错.用new Function语法,可以让函数里的Data[i][0]在函数定义时就解析,于是函数执行时Data[i][0]已变成实际值了,于是有效.new Function语法可参看微软的脚本手册 有谁知道哪里有这样一个插件? jquery控制table过滤,重新隔行变色 大家帮忙解释下这个json的错误 用js如何对名称为变量的下拉列表框赋值? 一个简单的关于jquery的问题~~ 关于页面重载? 控件数组的问题 OCX控件的现在及安装 如何判断用户填入的内容是不是数字? 简单的50分题 用JAVASCRIPT如何实现检查输入钱数的合法性? marquee和flash中的按钮有冲突
<script language="javascript" type="text/JavaScript">
var Data = new Array();
Data[0] = [0, 'aaa'];
Data[1] = [1, 'bbb'];
Data[2] = [2, 'ccc'];for(var i=0; i<Data.length; i++){
var DIV = document.createElement('div');
DIV.style.cssText = 'width:80px; height:18px; border:1px #7d7d7d solid;';
DIV.innerText= Data[i][1];
DIV.i= Data[i][0];
DIV.onclick=function(){alert(this.i)};
document.body.insertAdjacentElement('beforeEnd', DIV);
}
</script>
</BODY>
</HTML>
<script language="javascript" type="text/JavaScript">
var Data = new Array();
Data[0] = [0, 'aaa'];
Data[1] = [1, 'bbb'];
Data[2] = [2, 'ccc'];for(var i=0; i<Data.length; i++){
var DIV = document.createElement('div');
DIV.style.cssText = 'width:80px; height:18px; border:1px #7d7d7d solid;';
DIV.innerText= Data[i][1];
DIV.onclick=new Function("alert("+Data[i][0]+")");
document.body.insertAdjacentElement('beforeEnd', DIV);
}
</script>
</BODY>
</HTML>
new Function
吗?
DIV.attachEvent("onclick", new Function("alert(" + Data[i][0] + ")"));不是你添加的onclick事件无效,而是函数里的语法是要到函数执行时才解析的,这时候你的
Data[i][0]里的i就变成未有定义了,于是解析出错.用new Function语法,可以让函数里的Data[i][0]在函数定义时就解析,于是函数执行时Data[i][0]已变成实际值了,于是有效.new Function语法可参看微软的脚本手册