btnDemo.onclick = function(){alert("onclick!!!")}btnDemo.onclick = null //这个我没写代码测试
btnDemo.onclick = function(){}//呵呵

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
    <HEAD>
    <TITLE> New Document </TITLE>
    <script type="text/javascript" language="javascript">
    function addEvent(){
    var obj = document.getElementById('btnDemo');
    obj.setAttribute('onclick',null);
    obj.onclick =function(){
    alert("tag");
    }
    }
    </script>
    </HEAD>
    <BODY>
    <input id="btnDemo" onclick="alert('abc');" type="button" value="click"/>
    <input type="button" onclick="addEvent()" value="attachEvent"/>
    </BODY>
    </HTML> attachEvent 在 FF 下没法用
      

  2.   

    经测试俺的那个和 attachEvent 的 onclick 事件,都没有写到 btnDemo 的 onclick 属性中,所以 obj.setAttribute('onclick',null) 是无效的alert(document.getElementById('btnDemo').attributes['onclick'].nodeValue);而使用了 obj.onclick = function(){} 定义的动作并没有存放到 onclick 属性中,这个还真没什么太深入的研究alert(document.getElementById('btnDemo').onclick);楼主看看是不是要换个写法
      

  3.   

    谢谢你。
    但attachEvent 在 FF 下没法用 是什么意思?
      

  4.   

    attachEvent ('onmouseover', Hilite);
    attachEvent ('onmouseout', Restore);
    function cleanup()
    {
    detachEvent ('onmouseover', Hilite);
    detachEvent ('onmouseout', Restore);
    }
      

  5.   

     <script type="text/javascript">
      function a(){alert("tag");}
      var tst;
        function addEvent(){
            var btnDemo = document.all["btnDemo"];
    if(!tst){btnDemo.onclick="";};
            btnDemo.detachEvent("onclick",a);
    btnDemo.attachEvent("onclick",a);
        }
     </script>
    FF用removeEventListener和addEventListener.
      

  6.   

    或者?
    重新编一个addEvent()
    function addEvent(obj,evt,fn) {
       if (obj.addEventListener)
              obj.addEventListener(evt,fn,false);
       else if (obj.attachEvent)
              obj.attachEvent('on'+evt,fn);
            else 
               obj["on" + evt] = fn;
    }
    再加一个removeEvent()
    function removeEvent(obj,evt,fn) {
       if (obj.removeEventListener)
              obj.removeEventListener(evt,fn,false);
       else if (obj.detachEvent)
              obj.detachEvent('on'+evt,fn);
            else 
               obj["on" + evt] = null;
    }
      

  7.   

    估计楼主没有测试我给的提示,写了简单的示例,你到浏览器跑跑看。
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
            <title>事件</title>
            <script type="text/javascript">
             var btn;
            
             /**
              * 事件
              */
    function fnEvent()
    {
    alert("事件");
    btn.onclick = null;
    }

    /**
     * 入口
     */
                window.onload = function()
                {
                    btn = window.document.getElementById("btn");
    btn.onclick = fnEvent;
                }
            </script>
        </head>
        <body>
            <input type="button" id="btn" name="btn" value="button"/>
        </body>
    </html>