我用dtree在web里做了一个树状菜单,不知在节点上是否可以添加右键菜单,如果能加的话该怎么加,请高手指教,希望能给出具体代码事例,谢谢!
解决方案 »
- 请大家帮忙看看!css问题
- 关于HQL语句查询?
- 问个简单问题:rs.close后,对应的conn是否也自动关了呢?
- HFSJ ServetContext Listener demo, error 404, /listenerTest/ListenTest.do not found大家帮帮忙
- 怎么去了网页上的权版信息啊,
- jsp与数据库的问题?
- 有关servlet 检索html
- jsp页面中,根据影藏条件变化来显示和影藏表格的一行。
- 关于日期计算的问题,请教
- 关于中文输出!一个很奇怪的问题!答对者加分
- 求教:如何实现网页一打开就自动定位到文件末尾,类似于聊天室。
- 请问如何构造成 HttpServletRequest?
var oPopup=null; //弹出菜单
var popWidth=110; //弹出菜单的宽度
var popHeight=140; //弹出菜单的高度
var curRow=null; //记录弹出菜单最后指向的行function init(){
oPopup = window.createPopup();
var oPopBody = oPopup.document.body;
//设置菜单样式
oPopBody.style.backgroundColor = "scrollbar";
oPopBody.style.border = "2px solid";
oPopBody.style.borderColor = "buttonhighlight buttonshadow buttonshadow buttonhighlight"
var strHTML=""
strHTML+='<table oncontextmenu="return false;" onselectstart="return false;" id="tbMenu" ';
strHTML+=' style="cursor:default; width:100%; height:100%;font-size:12px;" border=0 cellpadding=0 cellspacing=2>';
//在这里扩展菜单的选项start
strHTML+='<tr operation="edit"><td> 编辑</td></tr>';
strHTML+='<tr operation="refresh"><td> 刷新</td></tr>';
strHTML+='<tr operation="addrowup"><td> 添加新行(上)</td></tr>';
strHTML+='<tr operation="addrowdown"><td> 添加新行(下)</td></tr>';
strHTML+='<tr operation="delrow"><td> 删除该行</td></tr>';
strHTML+='<tr operation="moveup"><td> 向上移动一行</td></tr>';
strHTML+='<tr operation="movedown"><td> 向下移动一行</td></tr>';
//在这里扩展菜单的选项end
strHTML+='</table>'; oPopBody.innerHTML=strHTML;
var tb = oPopup.document.getElementById("tbMenu");
var rs=tb.rows;
for(var i=0;i<rs.length;i++){
var row=rs[i];
addEvent(row);
}
}function showMenu(){
var e=window.event;
var src=e.srcElement;
oPopup.show(window.event.clientX, window.event.clientY, popWidth, popHeight, document.body);
window.event.returnValue=false;
}function addEvent(row){
row.attachEvent("onmouseover",function(){selRow(row)});
row.attachEvent("onclick",function(){onEvent(row)});
}
function selRow(src){
if(curRow!=null){ curRow.style.backgroundColor="scrollbar"; curRow.style.color="black";}
curRow=src; curRow.style.backgroundColor="midnightblue"; curRow.style.color="white";
}function onEvent(src){
oPopup.hide();
switch(src.operation){
//在这里为菜单项的点击事件添加处理方法
//本示例的方法只供参考,没有实现
case "edit": example(src.operation); break;
case "refresh": example(src.operation); break;
case "addrowup": example(src.operation); break;
case "addrowdown": example(src.operation); break;
case "delrow": example(src.operation); break;
case "moveup": example(src.operation); break;
case "movedown": example(src.operation); break;
default: return;
}
src.style.backgroundColor="scrollbar";
src.style.color="black";
curRow=null;
}function example(str){
alert("您选择了"+str+"操作!");
}
</script>
我有一个jsp页面“treejs.jsp”,本来没有问题,能正常显示,但当tomcat重启以后就又不能正常显示了,一大堆错误,再到eclipse里去看自动生成的“treejs_jsp.java”文件也是一大堆错误,但是若此时删除“treejs_jsp.java”文件,将“treejs.jsp”不做任何修改再保存一下,就又可以正常显示了,但生成“treejs_jsp.java”文件还是一对错误,若在重启tomcat就又不能正常显示了,如此循环,不胜烦恼,望高人指点!谢谢!是不是我的jsp页面有问题?有问题的话为什么又能正常显示呢,若没问题,生成的“treejs_jsp.java”文件为什么会有那么多错误呢,奇怪!!!
//页面加载时调用此函数
function showMenu(id) {
if(id == "") { //默认点击页面空白处时的右键菜单
popMenu(itemMenu,110,"100"); //默认只显示“新增”菜单项
//menuForm.addNode.value = "/ipmanage/addNode.jsp"; //注意ipmanage目录下需要已经创建了一个addNode.jsp页面
//menuForm.delNode.value = "";
//menuForm.updateNode.value = "";
}else{ //根据特定的字符串解析
var temparr = new Array();
//temparr = temp.split(",");
// menuForm.addNode.value = temparr[0];
//menuForm.delNode.value = temparr[1];
//menuForm.updateNode.value = temparr[2];
popMenu(itemMenu,110,id);
}
event.returnValue=false;
event.cancelBubble=true;
return false;
}
//弹出右键菜单
function popMenu(menuDiv,width,rowControlString)
{
//创建弹出菜单
var pop=window.createPopup();
//设置弹出菜单的内容
pop.document.body.innerHTML=menuDiv.innerHTML; //这句话控制了弹出菜单的html代码为定义右键菜单的div的html代码,即弹出时显示div中的表格
var rowObjs=pop.document.body.all[0].rows; //获得表格中的行对象
//获得弹出菜单的行数
var rowCount=rowObjs.length;
//循环设置每行的属性
for(var i=0;i<rowObjs.length;i++)
{
//如果设置该行不显示,则行数减一
var hide=rowControlString.charAt(i)!='1';
if(hide){
rowCount--;
}
//设置是否显示该行
rowObjs[i].style.display=(hide)?"none":"";
//设置鼠标滑入该行时的效果
rowObjs[i].cells[0].onmouseover=function()
{
this.style.background="#E8E8E8";
this.style.color="blue";
}
//设置鼠标滑出该行时的效果
rowObjs[i].cells[0].onmouseout=function(){
this.style.background="#D0D0D0";
this.style.color="black";
}
}
//屏蔽系统的Web页面本身的右键菜单
pop.document.oncontextmenu=function() {
return false;
}
//选择右键菜单的一项后,菜单隐藏
pop.document.onclick=function() {
pop.hide();
}
//显示右键菜单
pop.show(event.clientX-1,event.clientY,width,rowCount*20,document.body);
return true;
}
</script><div id="itemMenu" style="display:none">
<table border="1" width="100%" bgcolor="#D0D0D0" style="border:thin" cellspacing="0">
<tr>
<td style="cursor:hand;border:outset 1;font-size:12px" align="left" onclick="parent.addNode()">新增</td>
</tr>
<tr>
<td style="cursor:hand;border:outset 1;font-size:12px" align="left" onclick="parent.delNode()">删除</td>
</tr> <tr>
<td style="cursor:hand;border:outset 1;font-size:12px" align="left" onclick="parent.updateNode()">更新</td>
</tr>
</table>
</div>