作为程序员需要有学习的能力,要有举一反三的能力,别动不动就求求求。
既然已经可以实现菜单了,改进到你的需要是很容易的,通过event,判断不同位置,判断来源,生成不同菜单。

解决方案 »

  1.   

    要是偷懒的话就直接百度搜索下copy一个吧
      

  2.   

    给你个提示:   window.onkeyup = function(evt){
           evt = evt || window.event;
           if(evt && evt.key == 2){
             var target = evt.target || evt.srcElement;
             var isMyMenu = false;
             for(var i=0;i<myMenus.length;i++){ //myMenus:你的菜单所在元素(如DIV)数组;
                  if(target == myMenus[i]){
                       //点了你的菜单,干点什么吧。
                }
             }
           }
       }
      

  3.   

    liuhongxing1908901 给的代码中最关键的提示:var target = evt.target || evt.srcElement; 取得你所点击的元素后进行判断,比如className,name等属性,然后有针对性的弹出菜单。
    ---------------------------------------------------------------------
       另外,evt.key == 2那个确认是点的右键吗?我记得得用document.contextmenu=function(evt){ //action return false;} 来实现右键弹出的。
      

  4.   

    错了, 应该是
    document.oncontextmenu=function(evt){
     //action 
      return false;
    }
      

  5.   

    问题已经解决,谢谢大家的帮忙。
    to:yyggkcuf 我不太赞同你前几句,跟别人学习和自己去摸索得到相同结果花费的时间是相差很大的(尤其对我这样的初学者来说)。这也是去学校学习的原因之一吧。但我很感谢你给方向。
    在找FireFox和IE兼容的时候找到这段代码。发给大家看看。if(window.addEventListener){
      FixPrototypeForGecko();
    }
    function FixPrototypeForGecko(){
      HTMLElement.prototype.__defineGetter__("runtimeStyle",element_prototype_get_runtimeStyle);
      window.constructor.prototype.__defineGetter__("event",window_prototype_get_event);
      Event.prototype.__defineGetter__("srcElement",event_prototype_get_srcElement);
    }
    function element_prototype_get_runtimeStyle(){
      return this.style;
    }
    function window_prototype_get_event(){
      return SearchEvent();
    }
    function event_prototype_get_srcElement(){
      return this.target;
    }function SearchEvent(){
      //IE
      if(document.all){
        return window.event;
      }
      func=SearchEvent.caller;
      while(func!=null)
      {
        var arg0=func.arguments[0];
        if(arg0)
        {
          if(arg0.constructor==Event || arg0.constructor == MouseEvent){
            return arg0;
          }
        }
        func=func.caller;
      }
      return null;
    }