<html>
  2 <head>
  3 <script language="javascript">
  4 function hello222(){
  5     for (var i=1; i<3; i++){
  6         var cell = document.getElementById("cell_"+i);  
  7         cell.onclick= function (i) {alert ('Removed 000 !! in goodbye!!!' + "  " + i );}    
  8     }
  9 }
 10 
 11 function hello(){
 12     alert ("old on click!!");
 13 }
 14 
 15 
 16 function goodbye(passed){
 17     alert ('Removed !! in goodbye!!!' + "  " + passed );
 18 }
 19 </script>
 20 </head>
 21 <body>
 22 <a onclick="hello()" id="cell_1">me1</a>
 23 <a onclick="hello()" id="cell_2">me2</a>
 24 <p>
 25 <input type="button" value="remove onclick" onclick="hello222()">
 26 </body>
 27 </html>
需要在IE里面动态把目标的onclick事件批量更改。
同时要求传一个参数给更改后的onclick的事件函数。
比如更改前是这样:
<a onclick="hello()" id="cell_1">me1</a>
<a onclick="hello()" id="cell_2">me2</a>
要求更改后是这样:
<a onclick="hello_new('11')" id="cell_1">me1</a>
<a onclick="hello_new('22')" id="cell_2">me2</a>参数怎么传呢?
我上面的代码传来传去只能得到一个同样的值:  3

解决方案 »

  1.   

    参考如下代码:
    <html>
    <head>
    <script language="javascript">
    function hello222(){
    for (var i=1; i<3; i++){
    var cell = document.getElementById("cell_"+i);  
    cell.onclick= new Function("hello_new('" + i + "');");
    }
    }function hello(){
    alert("old on click!!");
    }
    function hello_new(passed){
    alert('Removed !! in goodbye!!!' + "  " + passed );
    }
    </script>
    </head>
    <body>
    <a onclick="hello()" id="cell_1">me1</a>
    <a onclick="hello()" id="cell_2">me2</a>
    <p>
    <input type="button" value="remove onclick" onclick="hello222()">
    </body>
    </html>
      

  2.   

    对高手来说太easy了
    哈哈
    早点结了吧,不然这点分怕不够分哪多谢!
      

  3.   

    把你的hello222改为
     function hello222(){
         for (var i=1; i<3; i++){
             var cell = document.getElementById("cell_"+i);  
             cellOnclick(cell,i)
             
        }
        
        function cellOnclick(el,i){
         el.onclick= function () {
            alert ('Removed 000 !! in goodbye!!!' + "  " + i );  
           }    
        }
    }