我有一个图片对象,给它添加了右键事件,弹出了右键菜单,然后我又用attachEvent这个方法,给右键菜单项添加了点击事件,我传递过一个参数去,第一次执行是正确的,后来每次执行,都会把我传递的参数追加,这是为啥啊?

解决方案 »

  1.   

    attachEvent 就是不断添加处理函数的。要么每次处理函数调用结束dettachEvent ,要么初始化的时候只调用一次attachEvent
      

  2.   


    我是多个图片,每次都会调用的,dettachEvent 这个事件要在哪加? 你是说 点击右键菜单点击的事件处理后吗?showMenu 是我点击图片的处理 ,是这个click方法调用dettachEvent ?
     var click= function(id)
        {    
            return function()
            {   
                alert(id);   
            }   
        }
    function  showMenu(id,obj){
        var menu=document.getElementById("Menu1");  
        new csMenu(obj,menu);
        var liR=document.getElementById("liR");
        liR.attachEvent("onclick",click(id));
        var liE=document.getElementById("liE");
        liE.attachEvent("onclick",click(id));     
    }
     
      

  3.   

    你用匿名函数的话,直接用 liR.onclick=(function(n){
        return function(){click(n)}
    })(id)); 不需要 attachEvent了