JavaScript实现右键菜单(二)
2006-01-18 18:30
387 查看
/**
* <p>标题: BSRightItemArea</p>
* <p>功能描述: 右键菜单块。</p>
* <p>作者: BinaryStar</p>
* <p>版本: 0.1</p>
* <p>创建日期: 2005-12-21</p>
*/
function BSRightItemArea(pid, index, text){
this.pid = pid||"BSRightMenu_1";//ID
this.index = index;
this.id = this.pid + "_ItemArea_" + this.index;//ID
this.leftText = text||"BS 制作";//左边显示的文字
this.itemList = new Array();//右键菜单集合
this.thisItemIndex = -1;
//添加一个右键菜项
this.addItem = function (pIndex, text, jsfun, img, disabled){
var area = new BSRightItem(this.pid, this.index, this.id, pIndex, this.itemList.length, text, jsfun, img, disabled);
if (text.Trim() == "-" || text.Trim() == "" || text.Trim() == "sperator"){
area.isSperator = true;
}
//设置父节点的子项目
if (pIndex >= 0){
var pobj = eval(this.pid);
this.itemList[pIndex].childList.length++;
this.itemList[pIndex].childList[this.itemList[pIndex].childList.length-1] = area.index;
area.level = this.itemList[pIndex].level+1;
pobj.setMaxLevel(area.level);
}
this.itemList.length++;
this.itemList[this.itemList.length-1] = area;
return area;
}
//菜单项块的展现
this.show = function(){
var htmlStr = "<table border='0' cellspacing='0'>";
htmlStr += "<tr><td valign=/"top/" bgcolor=/"#000000/" onclick=/"window.event.cancelBubble=true;/" class=/"bs_rm_info_td/"><nobr><div class=/"bs_rm_info/">"+this.leftText+"</div></nobr>";
htmlStr += "</td><td style='padding: 1' valign='bottom'>";
htmlStr += "<table width='100%' border='0' cellspacing='0'>";
for (var i=0; i<this.itemList.length; i++){
if (this.itemList[i].pIndex < 0){
htmlStr += this.itemList[i].show();
}
}
htmlStr += "</table></td></tr></table>";
return htmlStr;
}
//设置选中的菜单项
this.setIndexItem = function (in_pIndex, thisIndex){
if (in_pIndex < 0 && thisIndex != this.thisItemIndex){
if (this.thisItemIndex >= 0){
var thisDiv = document.getElementById(this.itemList[this.thisItemIndex].id+"_tr");
if (thisDiv != null){
thisDiv.className = "bs_rm_out";
this.itemList[this.thisItemIndex].setImgSelect(thisDiv, false);
this.itemList[this.thisItemIndex].childIsShow = false;
}
}
this.thisItemIndex = thisIndex;
}
else if (in_pIndex >= 0){
var pItem = this.itemList[in_pIndex];
this.setFatherSel(in_pIndex);
if (thisIndex == pItem.thisItemIndex){
return;
}
if (pItem.thisItemIndex >= 0){
var thisDiv = document.getElementById(this.itemList[pItem.thisItemIndex].id+"_tr");
if (thisDiv != null){
thisDiv.className = "bs_rm_out";
pItem.childIsShow = false;
pItem.setImgSelect(thisDiv, false);
}
}
pItem.thisItemIndex = thisIndex;
}
}
this.setFatherSel = function (thisIndex){
if (thisIndex < 0){
return;
}
var thisItem = this.itemList[thisIndex];
var thisDiv = document.getElementById(this.itemList[thisIndex].id+"_tr");
if (thisDiv != null){
thisDiv.className = "bs_rm_over";
thisItem.setImgSelect(thisDiv, true);
}
if (thisItem.pIndex > 0){
this.setFatherSel(thisItem.pIndex);
}
}
}
* <p>标题: BSRightItemArea</p>
* <p>功能描述: 右键菜单块。</p>
* <p>作者: BinaryStar</p>
* <p>版本: 0.1</p>
* <p>创建日期: 2005-12-21</p>
*/
function BSRightItemArea(pid, index, text){
this.pid = pid||"BSRightMenu_1";//ID
this.index = index;
this.id = this.pid + "_ItemArea_" + this.index;//ID
this.leftText = text||"BS 制作";//左边显示的文字
this.itemList = new Array();//右键菜单集合
this.thisItemIndex = -1;
//添加一个右键菜项
this.addItem = function (pIndex, text, jsfun, img, disabled){
var area = new BSRightItem(this.pid, this.index, this.id, pIndex, this.itemList.length, text, jsfun, img, disabled);
if (text.Trim() == "-" || text.Trim() == "" || text.Trim() == "sperator"){
area.isSperator = true;
}
//设置父节点的子项目
if (pIndex >= 0){
var pobj = eval(this.pid);
this.itemList[pIndex].childList.length++;
this.itemList[pIndex].childList[this.itemList[pIndex].childList.length-1] = area.index;
area.level = this.itemList[pIndex].level+1;
pobj.setMaxLevel(area.level);
}
this.itemList.length++;
this.itemList[this.itemList.length-1] = area;
return area;
}
//菜单项块的展现
this.show = function(){
var htmlStr = "<table border='0' cellspacing='0'>";
htmlStr += "<tr><td valign=/"top/" bgcolor=/"#000000/" onclick=/"window.event.cancelBubble=true;/" class=/"bs_rm_info_td/"><nobr><div class=/"bs_rm_info/">"+this.leftText+"</div></nobr>";
htmlStr += "</td><td style='padding: 1' valign='bottom'>";
htmlStr += "<table width='100%' border='0' cellspacing='0'>";
for (var i=0; i<this.itemList.length; i++){
if (this.itemList[i].pIndex < 0){
htmlStr += this.itemList[i].show();
}
}
htmlStr += "</table></td></tr></table>";
return htmlStr;
}
//设置选中的菜单项
this.setIndexItem = function (in_pIndex, thisIndex){
if (in_pIndex < 0 && thisIndex != this.thisItemIndex){
if (this.thisItemIndex >= 0){
var thisDiv = document.getElementById(this.itemList[this.thisItemIndex].id+"_tr");
if (thisDiv != null){
thisDiv.className = "bs_rm_out";
this.itemList[this.thisItemIndex].setImgSelect(thisDiv, false);
this.itemList[this.thisItemIndex].childIsShow = false;
}
}
this.thisItemIndex = thisIndex;
}
else if (in_pIndex >= 0){
var pItem = this.itemList[in_pIndex];
this.setFatherSel(in_pIndex);
if (thisIndex == pItem.thisItemIndex){
return;
}
if (pItem.thisItemIndex >= 0){
var thisDiv = document.getElementById(this.itemList[pItem.thisItemIndex].id+"_tr");
if (thisDiv != null){
thisDiv.className = "bs_rm_out";
pItem.childIsShow = false;
pItem.setImgSelect(thisDiv, false);
}
}
pItem.thisItemIndex = thisIndex;
}
}
this.setFatherSel = function (thisIndex){
if (thisIndex < 0){
return;
}
var thisItem = this.itemList[thisIndex];
var thisDiv = document.getElementById(this.itemList[thisIndex].id+"_tr");
if (thisDiv != null){
thisDiv.className = "bs_rm_over";
thisItem.setImgSelect(thisDiv, true);
}
if (thisItem.pIndex > 0){
this.setFatherSel(thisItem.pIndex);
}
}
}
相关文章推荐
- 用Javascript实现Agent(实现右键菜单)(2)
- JavaScript 对任意元素,自定义右键菜单的实现方法
- JavaScript实现右键菜单(二)
- 用javascript实现既能禁止页面鼠标右键查看 同时又能查看页面文本框右键菜单
- javascript自定义右键弹出菜单实现方法
- 使用Javascript封装实现屏蔽鼠标右键系统键菜单,并绑定自定义的事件
- JavaScript实现右键菜单(一)
- JavaScript实现右键菜单(三)
- Javascript实现鼠标右键特色菜单
- JavaScript实现右键菜单(二)
- 基于JavaScript实现右键菜单和拖拽功能
- javascript中如何实现浏览器上的右键菜单
- JavaScript实现右键菜单(三)
- 用javascript实现既能禁止页面鼠标右键查看 同时又能查看页面文本框右键菜单
- 用javascript 实现网页鼠标右键弹出菜单功能
- 【工具代码】JavaScript实现右键菜单的一种方式
- Javascript实现右键自定义菜单
- JavaScript实现右键菜单(一)
- 用Javascript实现Agent(实现右键菜单)(2)
- javascript 实现各浏览器兼容的右键菜单