imgObject.attachEvent('onclick',new Function(){   abc(row.id)   });//

解决方案 »

  1.   

    我给所有动态添加的 img 都动态添加了事件
    而每个事件都传了一个value
    这个value就是当前对象的ID
      

  2.   

    请问这里有问题吗?
    需要怎么改,我没明白
    我每次循环都是 var imgObject = document.createElement('img');
    那么
    imgObject.attachEvent('onclick',new Function(){   abc(row.id)   });
    也是当前对象添加的事件啊麻烦请指教
      

  3.   


    <!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>
      

  4.   

    new Function重新创建对象 你先改看看 不一定对
      

  5.   

    但前几次添加的事件传的value
    都被最后一个对象的value覆盖了
    请问是什么原因要顶上去啊,我急如果我没说清楚,请告诉我哪里没说清楚,谢谢,我好解释清楚
      

  6.   


    imgObject.attachEvent('onclick',new Function("abc(row.id)");//
      

  7.   

    是这样的啊?
    imgObject.attachEvent('onclick',new Function(){   abc(row.id)   });//还是这样的啊?
    imgObject.attachEvent('onclick',new Function("abc(row.id)");//
      

  8.   


    imgObject.attachEvent('onclick',new Function("abc(row.id)");// 
    这个
      

  9.   

    你写成这样试试 
    // imgObject.attachEvent('onclick',new Function(){ abc(row.id) }); 
    (function(){ 
    var c=row.id; 
    imgObject.attachEvent('onclick',Function(){ abc(c.id) }); 
    })();
      

  10.   


    imgObject.attachEvent('onclick',new Function("abc("+row.id+")");//  
    再试
      

  11.   

    (function(x){imgObject.attachEvent('onclick', function(){   abc(x)   })})(row.id)改成这个看看
      

  12.   

    你写成这样试试  
    // imgObject.attachEvent('onclick',new Function(){ abc(row.id) });  
    (function(){  
    var c=row.id;  
    imgObject.attachEvent('onclick',Function(){ abc(c) });  
    })();所有的row都是一个全局变量,你得复制它的实时的id才行,不然row总是存放最后一个你赋值的对象
      

  13.   

    谢谢,你这好像可以,我还需要试试
    请问能传 object对象吗?
      

  14.   

    所有的row是一个局部变量啊
    var row = tableObject.insertRow(parentNodeObj.rowIndex + 1 + i);//添加一行
      

  15.   

    那我
    imgObject.attachEvent('onclick',new Function("abc("+imgObject+")"));// 
    function abc(value){
        alert(value.name);
        
    }
    js  报错
    显示:第一行,第一个字符  object没定义
    而传row.id 没报错
      

  16.   

    var row = tableObject.insertRow(parentNodeObj.rowIndex + 1 + i);//添加一行我新添加了一行
    row应该是一个新的对象吧
      

  17.   

    是一个新的对象。不过我估计你会失败,,,如果你想让一个变量成为非全局的变量,那就最好是在函数中用var 定义,,,(比如用匿名函数(function(){})();)如果想让你原来的代码继续工作,那你得实现object的深层拷贝。。我觉得是这样,,,
      

  18.   


    这位大大能不能说下
    (function(x){imgObject.attachEvent('onclick', function(){   abc(x)   })})(row.id) 
    是什么意思
    谢谢
      

  19.   

    http://topic.csdn.net/u/20080116/16/a07cb945-84bf-4c4b-94f8-1b4ad5e35de0.html
      

  20.   


    <!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>
      

  21.   

    谢谢大家,我回家给大家分,谢谢了,问题已经解决
    但还是不知道原因在哪里,只知道换成
    aa.attachEvent('onclick',(function (x){return function(){abc(x)}})(aa.id))这个处理事件就好了,不知道为什么!如果能告诉我原因就好了,谢谢