求救各位大大,本来本着虚心的态度改了一天,但还是不知道错误的原因,在线等,解决马上给分 imgObject.attachEvent('onclick',new Function(){ abc(row.id) });// 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我给所有动态添加的 img 都动态添加了事件而每个事件都传了一个value这个value就是当前对象的ID 请问这里有问题吗?需要怎么改,我没明白我每次循环都是 var imgObject = document.createElement('img');那么imgObject.attachEvent('onclick',new Function(){ abc(row.id) });也是当前对象添加的事件啊麻烦请指教 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <script> </script> </HEAD> <BODY><input id="btn0" type="button" value="aaa"> <input id="btn1" type="button" value="aaa"> <input id="btn2" type="button" value="aaa"> <input id="btn3" type="button" value="aaa"> <input id="btn4" type="button" value="aaa"> <script> for(var i=0;i<5;i++) { (function (x){document.getElementById("btn"+x).onclick = function(){alert(x);}})(i)} </script> </BODY></HTML> new Function重新创建对象 你先改看看 不一定对 但前几次添加的事件传的value都被最后一个对象的value覆盖了请问是什么原因要顶上去啊,我急如果我没说清楚,请告诉我哪里没说清楚,谢谢,我好解释清楚 imgObject.attachEvent('onclick',new Function("abc(row.id)");// 是这样的啊?imgObject.attachEvent('onclick',new Function(){ abc(row.id) });//还是这样的啊?imgObject.attachEvent('onclick',new Function("abc(row.id)");// imgObject.attachEvent('onclick',new Function("abc(row.id)");// 这个 你写成这样试试 // imgObject.attachEvent('onclick',new Function(){ abc(row.id) }); (function(){ var c=row.id; imgObject.attachEvent('onclick',Function(){ abc(c.id) }); })(); imgObject.attachEvent('onclick',new Function("abc("+row.id+")");// 再试 (function(x){imgObject.attachEvent('onclick', function(){ abc(x) })})(row.id)改成这个看看 你写成这样试试 // imgObject.attachEvent('onclick',new Function(){ abc(row.id) }); (function(){ var c=row.id; imgObject.attachEvent('onclick',Function(){ abc(c) }); })();所有的row都是一个全局变量,你得复制它的实时的id才行,不然row总是存放最后一个你赋值的对象 谢谢,你这好像可以,我还需要试试请问能传 object对象吗? 所有的row是一个局部变量啊var row = tableObject.insertRow(parentNodeObj.rowIndex + 1 + i);//添加一行 那我imgObject.attachEvent('onclick',new Function("abc("+imgObject+")"));// function abc(value){ alert(value.name); }js 报错显示:第一行,第一个字符 object没定义而传row.id 没报错 var row = tableObject.insertRow(parentNodeObj.rowIndex + 1 + i);//添加一行我新添加了一行row应该是一个新的对象吧 是一个新的对象。不过我估计你会失败,,,如果你想让一个变量成为非全局的变量,那就最好是在函数中用var 定义,,,(比如用匿名函数(function(){})();)如果想让你原来的代码继续工作,那你得实现object的深层拷贝。。我觉得是这样,,, 这位大大能不能说下(function(x){imgObject.attachEvent('onclick', function(){ abc(x) })})(row.id) 是什么意思谢谢 http://topic.csdn.net/u/20080116/16/a07cb945-84bf-4c4b-94f8-1b4ad5e35de0.html <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML> <HEAD> <TITLE> New Document </TITLE> <script> </script> </HEAD> <BODY><input id="btn0" type="button" value="aaa"> <input id="btn1" type="button" value="aaa"> <input id="btn2" type="button" value="aaa"> <input id="btn3" type="button" value="aaa"> <input id="btn4" type="button" value="aaa"> <script> for(var i=0;i<5;i++) { //(function (x){document.getElementById("btn"+x).onclick = function(){alert(x);}})(i)var aa=document.getElementById("btn"+i)var bb=document.getElementById("btn"+i).idaa.attachEvent('onclick',(function (x){return function(){abc(x)}})(aa.id))}function abc(m){alert(m)}//imgObject.attachEvent('onclick', (function (x){return function(){abc(x)}})(row.id));//传对象可以改成如上</script> </BODY></HTML> 谢谢大家,我回家给大家分,谢谢了,问题已经解决但还是不知道原因在哪里,只知道换成aa.attachEvent('onclick',(function (x){return function(){abc(x)}})(aa.id))这个处理事件就好了,不知道为什么!如果能告诉我原因就好了,谢谢 Javascript里apply的疑问 SmartUpload下载问题 请看一下问题在哪里 类似QQ群论坛里面的回帖 当回帖成功弹出的效果 怎么用JS实现啊 怎样让Gridview动态显示某些字段!各位大哥大姐,请帮帮忙!(在线等) 关于数据保存 vml!有开发过的吗?急需您的帮忙! 默认浏览选择文件的控件一次只能选择一个文件,能否实现选择多个文件的功能呢,就象发邮件系统那样? 大虾...急!帮忙啊,关于innerText问题!!!! 请帮帮我,谢谢! js如何设置DIV层中的图片 js 验证文本框的格式是否合法
而每个事件都传了一个value
这个value就是当前对象的ID
需要怎么改,我没明白
我每次循环都是 var imgObject = document.createElement('img');
那么
imgObject.attachEvent('onclick',new Function(){ abc(row.id) });
也是当前对象添加的事件啊麻烦请指教
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
</script>
</HEAD> <BODY>
<input id="btn0" type="button" value="aaa">
<input id="btn1" type="button" value="aaa">
<input id="btn2" type="button" value="aaa">
<input id="btn3" type="button" value="aaa">
<input id="btn4" type="button" value="aaa">
<script>
for(var i=0;i<5;i++)
{
(function (x){document.getElementById("btn"+x).onclick = function(){alert(x);}})(i)} </script>
</BODY>
</HTML>
都被最后一个对象的value覆盖了
请问是什么原因要顶上去啊,我急如果我没说清楚,请告诉我哪里没说清楚,谢谢,我好解释清楚
imgObject.attachEvent('onclick',new Function("abc(row.id)");//
imgObject.attachEvent('onclick',new Function(){ abc(row.id) });//还是这样的啊?
imgObject.attachEvent('onclick',new Function("abc(row.id)");//
imgObject.attachEvent('onclick',new Function("abc(row.id)");//
这个
// imgObject.attachEvent('onclick',new Function(){ abc(row.id) });
(function(){
var c=row.id;
imgObject.attachEvent('onclick',Function(){ abc(c.id) });
})();
imgObject.attachEvent('onclick',new Function("abc("+row.id+")");//
再试
// imgObject.attachEvent('onclick',new Function(){ abc(row.id) });
(function(){
var c=row.id;
imgObject.attachEvent('onclick',Function(){ abc(c) });
})();所有的row都是一个全局变量,你得复制它的实时的id才行,不然row总是存放最后一个你赋值的对象
请问能传 object对象吗?
var row = tableObject.insertRow(parentNodeObj.rowIndex + 1 + i);//添加一行
imgObject.attachEvent('onclick',new Function("abc("+imgObject+")"));//
function abc(value){
alert(value.name);
}
js 报错
显示:第一行,第一个字符 object没定义
而传row.id 没报错
row应该是一个新的对象吧
这位大大能不能说下
(function(x){imgObject.attachEvent('onclick', function(){ abc(x) })})(row.id)
是什么意思
谢谢
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
</script>
</HEAD> <BODY>
<input id="btn0" type="button" value="aaa">
<input id="btn1" type="button" value="aaa">
<input id="btn2" type="button" value="aaa">
<input id="btn3" type="button" value="aaa">
<input id="btn4" type="button" value="aaa">
<script>
for(var i=0;i<5;i++)
{
//(function (x){document.getElementById("btn"+x).onclick = function(){alert(x);}})(i)
var aa=document.getElementById("btn"+i)
var bb=document.getElementById("btn"+i).idaa.attachEvent('onclick',(function (x){return function(){abc(x)}})(aa.id))
}function abc(m){
alert(m)
}
//imgObject.attachEvent('onclick', (function (x){return function(){abc(x)}})(row.id));
//传对象可以改成如上
</script>
</BODY>
</HTML>
但还是不知道原因在哪里,只知道换成
aa.attachEvent('onclick',(function (x){return function(){abc(x)}})(aa.id))这个处理事件就好了,不知道为什么!如果能告诉我原因就好了,谢谢