⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bsrightmenu.js

📁 DWR与界面开发 ,对ajax感兴趣的可以看看哦
💻 JS
📖 第 1 页 / 共 2 页
字号:
        htmlStr += pobj.itemAreaList[this.areaIndex].itemList[this.childList[i]].show();
      }
      htmlStr += "</table>";
      var thisDiv = document.getElementById(this.pid+"_rm_"+(this.level));
      var left = document.body.scrollLeft+thisDiv.offsetLeft+thisDiv.offsetWidth-4;
      var top = thisDiv.offsetTop+elmObj.offsetTop+1;
      var levelObj = null;
      levelObj = document.getElementById(this.pid+"_rm_"+(this.level+1));
      //level+1层没有创建
      if (levelObj == null){
        levelObj = document.createElement("div");
        levelObj.id = this.pid+"_rm_"+(this.level+1);
        levelObj.className = "bs_rm_div";
        document.body.appendChild(levelObj);
      }
      levelObj.innerHTML = htmlStr;
      levelObj.style.display = "block";
      //定位
      if((left+levelObj.offsetWidth) > document.body.scrollLeft+document.body.clientWidth){
        left -= (elmObj.offsetWidth + levelObj.offsetWidth-4);
      }
        window.status = ("top:"+top+ " thisDiv.offsetHeight:"+thisDiv.offsetHeight+" levelObj.offsetWidth:"+levelObj.offsetHeight+ " all:" + (top+levelObj.offsetHeight) +" max:"+(document.body.scrollLeft+document.body.clientHeight));
      if((top+levelObj.offsetHeight) > document.body.scrollTop+document.body.clientHeight){
        top -= (levelObj.offsetHeight-elmObj.offsetHeight);
      }
      levelObj.style.left = left;
      levelObj.style.top = top;
      this.childIsShow = true;
    }
  }

  //鼠标按下动作
  this.doOnmousedown = function(elmObj){
    window.event.cancelBubble=true;
    if (this.childList.length <= 0){
      elmObj.setCapture();
    }
    return false;
  }
  //鼠标弹起动作
  this.doOnmouseup = function(elmObj){
    window.event.cancelBubble=true;
    if (this.childList.length <= 0){
      var pobj = eval(this.pid);
      pobj.setRMIndex(this.areaIndex, this.index);
      elmObj.releaseCapture();
      pobj.hiddenAll(0);
      if (this.jsfun.Trim() != ""){
        eval(this.jsfun);
      }
    }
    return false;
  }
  //鼠标移入动作
  this.doOnmouseover = function(elmObj){
    window.event.cancelBubble=true;
    if (!this.isSperator){
      elmObj.className = "bs_rm_over";
      this.setImgSelect(elmObj, true);
    }
    //改变其他的项的高选
    var pobj = eval(this.pid);
    pobj.itemAreaList[this.areaIndex].setIndexItem(this.pIndex, this.index);
    this.showChildren(elmObj);
    return false;
  }

  //鼠标移出动作
  this.doOnmouseout = function(elmObj){
    window.event.cancelBubble=true;
    if (!this.isSperator && !this.childIsShow){
      elmObj.className = "bs_rm_out";
      this.setImgSelect(elmObj, false);
    }
    return false;
  }
}

/**
 * <p>标题: BSRightMenu</p>
 * <p>功能描述: BS右键菜单对象。装载所有的右键菜单块</p>
 * <p>作者: BinaryStar</p>
 * <p>版本: 0.1</p>
 * <p>创建日期: 2005-12-21</p>
 */
function BSRightMenu(id){
  this.id = id||"BSRightMenu_1";//ID
  this.itemAreaList = new Array();//右键集合
  this.showItemAreaIndex = -1;//当前显示的右键菜单块
  this.clickItemIndex = -1;//当前鼠标单击所在的子菜单项索引。
  this.maxLevel = 0;//菜单树深度
  var rmlist = null;
  this.imagePath = "";//缺省的路径

  this.setImagesPath = function(inPath){
    this.imagePath = inPath;
  }
  //设置最大深度值
  this.setMaxLevel = function (inLevel){
    if (inLevel > this.maxLevel){
      this.maxLevel = inLevel;
    }
  }
  //添加一个右键菜单块
  this.addItemArea = function (text){
    var area = new BSRightItemArea(this.id, this.itemAreaList.length, text);
    this.itemAreaList.length++;
    this.itemAreaList[this.itemAreaList.length-1] = area;
    return area;
  }

  //激发右键菜单
  this.doRightMenu = function (areaIndex){
    window.event.cancelBubble=true;
    var curAreaIndex = 0;
    if (areaIndex != null){
      curAreaIndex = areaIndex;
    }
    this.hiddenAllRM();
    if (areaIndex < 0){
      document.oncontextmenu = null;
      return;
    }
    if(window.event.button == 2){
      document.oncontextmenu = function(){return false;};
      var left = document.body.scrollLeft+window.event.clientX-1;
      var top = document.body.scrollTop+window.event.clientY-1;
      var div = null;
      if (document.getElementById(this.id+"_rm_0") != null){
        div = document.getElementById(this.id+"_rm_0");
      }
      else{
        div = document.createElement("div");
        div.id = this.id+"_rm_0";
        div.className = "bs_rm_div";
        document.body.appendChild(div);
      }
      div.style.display = "block";
      var tempHTML = "<input type=\"hidden\" id=\""+this.id + "_thisItemIndex\" value=\"-1\"/><input type=\"hidden\" id=\""+this.id + "_thisAreaIndex\" value=\"-1\"/>"
      if (document.getElementById("BS_RightMenu_List") == null){
        temprmlist = document.createElement("input");
        temprmlist.id = "BS_RightMenu_List";
        temprmlist.className = "bs_rm_div";
        temprmlist.value = this.id;
        temprmlist.style.display="none";
        temprmlist.type = "hidden";
        document.body.appendChild(temprmlist);
      }
      else {
        this.addBSRMList(this.id);
      }
      div.innerHTML = this.itemAreaList[curAreaIndex].show() + tempHTML;
      if ((left + div.offsetWidth) > document.body.scrollLeft+document.body.clientWidth){
        left -= div.offsetWidth;
      }
      if((top+div.offsetHeight) > document.body.scrollTop+document.body.clientHeight){
        top -= (div.offsetHeight);
      }
      div.style.left = left;
      div.style.top = top;
    }
    else{
      document.oncontextmenu = null;
    }
  }

  this.setRMIndex = function (areaIndex, itemIndex){
    document.getElementById(this.id+"_thisAreaIndex").value = areaIndex;
    this.showItemAreaIndex = areaIndex;
    document.getElementById(this.id+"_thisItemIndex").value = itemIndex;
    this.clickItemIndex = itemIndex;
  }

  //隐藏指定深度下所有展现的菜单
  this.hiddenAll = function(inLevel){
    var tlevel = 0;
    if (inLevel != null){
      var tlevel = inLevel
    }
    for (var i=tlevel; i<this.maxLevel+1; i++){
      var divObj = document.getElementById(this.id+"_rm_"+i);
      if (divObj != null){
        divObj.style.display = "none";
      }
    }
  }

  //隐藏所有右键菜单
  this.hiddenAllRM = function(){
    if (document.getElementById("BS_RightMenu_List") == null){
      return;
    }
    var rmlist = document.getElementById("BS_RightMenu_List").value.split(",");
    for (var i=0; i<rmlist.length; i++){
      if (rmlist[i].Trim() != ""){
        var temp_rm = eval(rmlist[i].Trim());
        temp_rm.hiddenAll(0);
      }
    }
  }

  //检查右键菜单
  this.addBSRMList = function(inID){
    var rmlist = document.getElementById("BS_RightMenu_List").value.split(",");
    for (var i=0; i<rmlist.length; i++){
      if (rmlist[0].Trim() == inID.Trim()){
        return;
      }
    }
    document.getElementById("BS_RightMenu_List").value += ("," + inID);
  }

  //得到当前显示的菜单块
  this.getThisRMArea = function(){
    return this.itemAreaList[this.showItemAreaIndex];
  }

  //得到当前显示的菜单项
  this.getThisRMItem = function(){
    return this.getThisRMArea().itemList[this.clickItemIndex];
  }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -