右键菜单使用整理

目前右键菜单在各个系统中还频率使用比较高的。最近系统中用到了,就写了一个。还是比较好使用的(主要是方便)。现在把一些源码发放。
在list循环每一列的时候加上这么一句话:<tr oncontextmenu="showMenu(id);></tr>.
然后在列表页面最下面加入
<!-- 右键菜单属性 -->
<div class="skin0" id="main_menu" onmouseover="highlightie(event, 'menuitems');" onmouseout="lowlightie(event, 'menuitems');">
<div class="menuitems" id="tQId" ><span onmouseover="showTypeSubMenu('dd_auditTypes');" onmouseout="hideTypeSubMenu('dd_auditTypes', false);"><img width="15px" height="15px" align="absmiddle" src="<%=request.getContextPath()%>/images/menu/new.gif" border="0"/> <bean:message key="common.create"/></span></div>
</div>

highlightie与lowlightie方法: -- 见附件

主要还是showMenu方法:仔细看下:
function showMenu(id, responsorId, hasAdminPermission) {
qId = id;
/**权限开始**/
if (hasAdminPermission != true && responsorId != <%=operator.getId()%>) {
$("uQId").style.display = "none";
$("hId").style.display = "none";
} else {
$("uQId").style.display = "";
$("hId").style.display = "";
}
if (hasAdminPermission != true) {
$("sQId").style.display = "none";
}
/**权限结束**/
var dbcw = document.body.clientWidth, dbch = document.body.clientHeight;
var dbsl = document.body.scrollLeft, dbst = document.body.scrollTop;
var event=getEvent();
var rightedge = dbcw-event.clientX;
var bottomedge = dbch-event.clientY;
main_menu.style.display = "";
if (rightedge < main_menu.offsetWidth) {
main_menu.style.left =dbsl + event.clientX - main_menu.offsetWidth;
} else {
main_menu.style.left =dbsl + event.clientX;
}
if (bottomedge < main_menu.offsetHeight) {
var t = dbst + event.clientY - main_menu.offsetHeight;
main_menu.style.top = t > 70 ? t : 70;
} else {
main_menu.style.top = dbst + event.clientY;
}

main_menu.style.visibility = "visible";
event.returnValue = false;
return false;
}

二级菜单移动方法:

function showTypeSubMenu(type) {
var ts, ss;
var cp = parent.frames['controlboard'];
var dd_type = $(type);

var dbcw = document.body.clientWidth, dbch = document.body.clientHeight;
var dbsl = document.body.scrollLeft, dbst = document.body.scrollTop;
var event=getEvent();
var mmx = parseInt(main_menu.style.left.substring(0, main_menu.style.left.indexOf('p')));
var mmy = parseInt(main_menu.style.top.substring(0, main_menu.style.top.indexOf('p')));
var rightedge = dbcw-mmx - main_menu.offsetWidth;
var bottomedge = dbch-mmy;
dd_type.style.display = "";
if (rightedge < dd_type.offsetWidth) {
dd_type.style.left =mmx - dd_type.offsetWidth + 1;
} else {
dd_type.style.left =mmx + main_menu.offsetWidth - 1;
}
dd_type.style.top = dbst + event.clientY - 20;
dd_type.style.visibility = "visible";
event.returnValue = false;
return false;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值