<input id="Button4" type="button" value="按钮单击"  onclick="ddd()" /> <DIV id="zzzz" onclick="gg('123')">div单击</DIV>
  
function ddd()
{
   alert(document.getElementById("zzzz").onclick.toString())
   
    document.getElementById("zzzz").onclick = "gg('456')";
    
}
function gg(a)
{
   alert(a)
    
}
 
单击 "div单击",可以触发 gg(a)但当单击 按钮 “按钮单击" 后,“按钮单击" 单击执行 函数 ddd(),改变了 div 的函数头。在单击“按钮单击",
就不触发 函数 gg(a) 了?

解决方案 »

  1.   

     document.getElementById("zzzz").onclick = "gg('456')"; 
        

    function gg(a) 

      return function(){
      alert(a)   
    }
        
      

  2.   

    document.getElementById("zzzz").onclick = gg('456');  //没双引号
      

  3.   

    这样就行了<html>
        <head>
            <meta http-equiv="content-type" content="text/html; charset=utf-8">
            <META http-equiv="Content-Style-Type" content="text/css">
            <script language="javascript">
              function ddd() 

      alert(document.getElementById("zzzz").onclick.toString()) 
      
        document.getElementById("zzzz").onclick = gg('456'); 
        

    function gg(a) 

      return function(){ 
      alert(a)  
      }
    }  
                        </script>
        </head>
        <body>
            <input id="Button4" type="button" value="按钮单击"  onclick="ddd()" NAME="Button4"/> <DIV id="zzzz" onclick=(gg('123'))()>div单击 </DIV>
        </body>
    </html>
      

  4.   


    <input id="Button4" type="button" value="按钮单击"  onclick="ddd()" /> <DIV id="zzzz" onclick="gg('123')">div单击 </DIV> 
      
    <script language="javascript"> function ddd() 

       alert(document.getElementById("zzzz").onclick.toString()) 
       document.getElementById("zzzz").onclick = function(){gg('456');} 

    function gg(a) 

      alert(a) 

    </script> 
      

  5.   

     是这样     在页面加载时,动态产生的 div
          
          <DIV id="zzzz" onclick="gg('123')">div单击 </DIV>       页面加载后,对这个div 更改 onclick,例如要达到如下效果        <DIV id="zzzz" onclick="gg('456')">div单击 </DIV> 
          
           更改后, div 的 单击事件就不触发了
      

  6.   

    window.onload = function(){
    document.getElementById('zzzz').onclik = gg;
    }
    这种写法一般不可以传递参数,gg()后面不能加括号,否则会立即执行的
      

  7.   

    document.getElementById("zzzz").onclick = function(){gg('456');}
      

  8.   

    <input id="Button4" type="button" value="按钮单击"  onclick="ddd()" /> <DIV id="zzzz" onclick="gg('123')">div单击 </DIV> 
      
    <script language="javascript"> function ddd() 

       alert(document.getElementById("zzzz").onclick.toString()) 
       //document.getElementById("zzzz").onclick = "gg('456')";//这样写是指针指向字符串
       //document.getElementById("zzzz").onclick = gg('456');//这样是指向了一个返回值, 你的gg返回void, 那onclick就是undefined了
       document.getElementById("zzzz").onclick = Function(" return gg('456')"); //这样就将onclick和一个匿名的function绑定了, 只有这么做是合理的

    function gg(a) 

      alert(a) 

    </script> 
      

  9.   

      document.getElementById("zzzz").onclick = Function(" return gg('456')"); //这样就将onclick和一个匿名的function绑定了, 只有这么做是合理的
      

  10.   

     document.getElementById("zzzz").onclick = gg('456');