首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

初学者求教js弹出式菜单代码详解

2012-04-07 
菜鸟求教js弹出式菜单代码详解html xmlnshttp://www.w3.org/1999/xhtml headmeta http-equivCon

菜鸟求教js弹出式菜单代码详解
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<meta name="keywords" content=" " />
<meta name="description" content=" !" />
<title> </title>
<style type="text/css">
.zzjs_net
{
 position:absolute;
 top:100px;
 left:100px;
 width:200px;
 height:200px;
 background-color:white;
 border:1px solid pink;
}
.zzjs_net_2
{
 font-family:"宋体";
 color:#6699CC;
 margin-left:10px;
 margin-top:5px;
 list-style-type:none;
 cursor:default;
}
.zzjs_net_3
{
 margin-left:10px;
 margin-top:5px;
 background-color:#CCFFFF;
 list-style-type:none;
 cursor:default;
}
</style>
</head>
<body>
<a href="http://www.zzjs.net/"> </a> <hr>
 <div style="margin-left:auto; margin-right:auto; height:500px;background-color: #ffffff 
" width:60%; id="www_zzjs_net">
</div>
<input type="hidden" id="value1" value="4" />
<input type="hidden" id="value2" value="5" />
<script type="text/javascript">
  //右键菜单类
  function menu_wwwzzjsnet(div, menuDiv, menuList, classList) {
  var oThis = this;
  this._menuList =
 {
}
  this._classList =
 {
  objClass: '',
  MenuClass: '',
  liAbleClass: '',
  liMouseOverClass: ''
 }
  this.Init = function() {
  this._obj = $(div);
  this._obj.oncontextmenu = function(e) { oThis.ShowMenu(e) };
  this._obj.className = this._classList.objClass;
  document.onclick = function() { oThis.HiddenMenu() };
  objToObj(this._classList, classList);
  objToObj(this._menuList, menuList);
  }
  this.CreateMenu = function() {
  if ($(menuDiv)) {
  alert("该ID已被占用");
  return;
  }
  this._menu = document.createElement("DIV");
  this._menu.id = menuDiv;
  this._menu.oncontextmenu = function(e) { stopBubble(e) };
  this._menu.className = this._classList.MenuClass;
  this._menu.style.display = "none";
  document.body.appendChild(this._menu);
  }
  this.CreateMenuList = function() {
  for (var pro in this._menuList) {
  var li = document.createElement("LI");
  li.innerHTML = pro;
  this._menu.appendChild(li);
  li.className = this._classList.liAbleClass;
  li.onclick = this._menuList[pro];
  li.onmouseover = function() { oThis.ChangeLiClass(this, oThis._classList.liMouseOverClass) }
  li.onmouseout = function() { oThis.ChangeLiClass(this, oThis._classList.liAbleClass) }
  }
  }
  this.ChangeLiClass = function(obj, name) {
  obj.className = name
  }
  this.ShowMenu = function(e) {
  var e = e || window.event;
  stopBubble(e);
  var offsetX = e.clientX;


  var offsetY = e.clientY;
  with (this._menu.style) {
  display = "block";
  top = offsetY + "px";
  left = offsetX + "px";
  }
  }
  this.HiddenMenu = function() {
  this._menu.style.display = "none";
  }
  this.Init();
  this.CreateMenu();
  this.CreateMenuList();
  }
  function stopBubble(oEvent) {
  if (oEvent.stopPropagation) oEvent.stopPropagation();
  else oEvent.cancelBubble = true;
  if (oEvent.preventDefault) oEvent.preventDefault();
  else oEvent.returnValue = false;
  }
  function $(div) {
  return 'string' == typeof div ? document.getElementById(div) : div;
  }
  function objToObj(destination, source) {
  for (var pro in source) {
  destination[pro] = source[pro];
  }
  return destination;
  }
  //构造右键菜单
  function Edit() {
  alert("您点击了编辑按钮");
  }
  function Delete() {
  alert("您点击了删除按钮");
  }
  var menuList =
{
  编辑: Edit,
  删除: Delete
}
  var classList =
{
  MenuClass: 'zzjs_net',
  liAbleClass: 'zzjs_net_2',
  liMouseOverClass: 'zzjs_net_3'
}
  var www_zzjs_net = new menu_wwwzzjsnet("www_zzjs_net", "testDiv", menuList, classList)
</script>
</body>

</html>

[解决办法]
主要是运行不了。。。

热点排行