小弟碰到一个棘手的问题,下面的代码用两个方式添加事件,但是不管怎么添加,按钮的onclick只会触发一次,第二次点击的时候就没有反应了,帮忙看一下<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>javascript事件</title>    
</head>
<body>
   <input type="button" id="btn3" value="按钮3" />
   <br />
</body>
<script type="text/javascript">
   var btn3 = document.getElementById("btn3");    
   btn3.onclick = function(){ 
        document.body.innerHTML += "btn3 clicked! <br />";
   }
   if(document.all){
        btn3.attachEvent("onclick",function(){document.body.innerHTML += "btn3 clicked! <br />";})
   } else {
        btn3.addEventListener("click",function(){document.body.innerHTML += "btn3 clicked! <br />"},true);
   }
</script>
</html>

解决方案 »

  1.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>javascript事件</title>    
    </head>
    <body>
       <input type="button" id="btn3" value="按钮3" />
       <br />
    </body>
    <script type="text/javascript">
       var btn3 = document.getElementById("btn3");    
       btn3.onclick = function(){ 
        //document.body.innerHTML是重新加载html,一些动态绑定的事件或样式都失效了
            //document.body.innerHTML += "btn3 clicked! <br />";
            document.body.appendChild(document.createTextNode("btn3 clicked! "));
            document.body.appendChild(document.createElement("<br />"));
       }
       //if(document.all){
       //     btn3.attachEvent("onclick",function(){document.body.innerHTML += "btn3 clicked! <br />";})
       //} else {
       //     btn3.addEventListener("click",function(){document.body.innerHTML += "btn3 clicked! <br />"},true);
       //}
    </script>
    </html>
      

  2.   

    <input type="button" id="btn3" value="按钮3" />
    <div id="test"></div>
    <script type="text/javascript">
    var btn3 = document.getElementById("btn3");   
    var id = document.getElementById('test');
    btn3.onclick = function(){ 
    id.innerHTML += "click!<br>";
    }
    </script>