用yui建立简单的右键菜单

来源:互联网 发布:办公键盘鼠标 知乎 编辑:程序博客网 时间:2024/06/05 20:42

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>我的右键菜单</title>
<link href="menu.css" rel="stylesheet" type="text/css" />
<style type="text/css">
 .mydiv{display:block;
     background-color:#99cc66;
     width:400px;
     height:300px;}
</style>

<script language="javascript" src="yahoo-dom-event.js"></script>
<script language="javascript" src="animation.js"></script>
<script language="javascript" src="container_core.js"></script>
<script language="javascript" src="menu.js"></script>
<script language="javascript">
 YAHOO.example.onWindowLoad=function(){
  var oDiv=document.getElementById('mydiv');
  
  //定义菜单项
  var aMenuItems=[
     {
      text:'添加',
       submenu:{id:'itemAdd',itemdata:[
       {text:'分类',value:'type'},
      {text:'风险',value:'risk'}
       ]}
      },
      {text:'删除'},
       {text:'修改'}
   ];
 
  //菜单事件分配程序(只执行一次)
  function handleMenuEvent(){
   //获取菜单项0的子菜单对象
   var oSubMenu=this.getItem(0).cfg.getProperty("submenu");
   //为子菜单对象指定事件分配程序
   oSubMenu.renderEvent.subscribe(handleSubMenuEvent);
   this.clickEvent.subscribe(MainMenuClick);
  }
  
  //子菜单事件分配程序(只执行一次)
  function handleSubMenuEvent(){
   this.clickEvent.subscribe(SubMenuClick);
  }
  
  function MainMenuClick(){
   var oMenuItem=arguments[1][1];
   if(oMenuItem.index!=0)
    //替换为你的处理程序
    alert(oMenuItem.index);
  }
  
  function SubMenuClick(){
   var oMenuItem=arguments[1][1];
   //替换为你的处理程序
   alert(oMenuItem.value);
  }
  
  //声明菜单对象
  var oContextMenu=new YAHOO.widget.ContextMenu(
            'fieldcontextmenu',
          {
               trigger:oDiv,
            itemdata:aMenuItems,
            lazyload:true,
                                       effect: {
                                            effect:YAHOO.widget.ContainerEffect.FADE,
                                            duration:0.25
                                       }
           }
          );
  
  //为菜单指定事件分配程序
  oContextMenu.renderEvent.subscribe(handleMenuEvent);         
 };         
   
 //建立事件监听
 YAHOO.util.Event.addListener(window, "load", YAHOO.example.onWindowLoad);              
</script>
</head>
<!--注意body的class否则菜单会变形-->
<body class="yui-skin-sam">
<div class="mydiv" id="mydiv">
</div>
</body>
</html>
 

原创粉丝点击