强制Javascript编码与除指定元素之外的每个LI解除关联
Force Javascript Coding to Disassociate with every LI except to specified element
如何修改下面的代码,使其不抓取除指定元素中的LI之外的所有LI?原因是我在另一个页面上有一个单独的水平下拉菜单,当下面的代码应用到页面上时,我的右键菜单类似于我的下拉菜单。我如何使它只应用于指定的元素:document.getElementById('Menu')
<!DOCTYPE html>
<head>
<script language="javascript" type="text/javascript">
var MenuObj;
var activeMenuItem = false;
//Function to highlight menu item
function highlightMenuItem() {
this.className = 'MenuHighlighted';
}
function deHighlightMenuItem() {
this.className = '';
}
//Function to show menu on click of menu item
function showMenu(e) {
var myMouseX = (e || event).clientX;
var myMouseY = (e || event).clientY;
MenuObj.style.left = myMouseX + 'px';
MenuObj.style.top = myMouseY + 'px';
MenuObj.style.display = 'block';
return false;
}
//Function to hide menu on click of menu item
function hideMenu(e) {
if (document.all) e = event;
if (e.button == 0) {
MenuObj.style.display = 'none';
}
}
function initMenu() {
MenuObj = document.getElementById('Menu');
MenuObj.style.display = 'block';
var menuItems = MenuObj.getElementsByTagName('LI');
for (var no = 0; no < menuItems.length; no++) {
menuItems[no].onmouseover = highlightMenuItem;
menuItems[no].onmouseout = deHighlightMenuItem;
var aTag = menuItems[no].getElementsByTagName('A')[0];
aTag.style.paddingLeft = '5px';
aTag.style.width = (aTag.offsetWidth) + 'px';
aTag.onclick = hideMenu;
}
MenuObj.style.display = 'none';
}
</script>
<style type="text/css">
#Menu
{
/* The menu container */
border: 1px solid #808080;
background-color: #EDEDED;
margin: 0px;
padding: 0px;
width: 120px; /* Width of context menu */
font-family: Trebuchet MS;
font-size: 8pt;
background-repeat: repeat-y; /* Never change these two values */
display: none;
position: absolute;
}
#Menu a
{
/* Links in the context menu */
color: #252525;
text-decoration: none;
line-height: 20px;
vertical-align: middle;
height: 20px; /* Don't change these 3 values */
display: block;
width: 100%;
}
#Menu li
{
/* Each menu item */
list-style-type: none;
padding: 1px;
margin: 1px;
cursor: pointer;
}
#Menu li div
{
/* Dynamically created divs */
cursor: pointer;
}
#Menu .MenuHighlighted
{
background-color: #C4D0D4;
}
</style>
</head>
<body>
<select style="width: 250px;" id="refdocs_list">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="mercedes">Mercedes</option>
<option value="audi">Audi</option>
</select>
<div>
<ul id="Menu">
<li><a href="#nogo">Delete document</a></li>
<div style="height:1px; background: #808080;"></div>
<li style="height: 5px;"><a href="#nogo">Clear all</a></li>
</ul>
<script type="text/javascript">
initMenu();
MenuObj.style.display = 'none';
document.getElementById('refdocs_list').oncontextmenu = showMenu;
document.getElementById('refdocs_list').onclick = hideMenu;
document.documentElement.onclick = hideMenu;
</script>
</div>
</body>
</html>
原来我的菜单和右键菜单使用了相同的div名称#menu
改变了,瞧,它又起作用了。
相关文章:
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 引导程序:在导航栏中,显示悬停在单个位置的基于Li Link的不同内容
- 更改li标记文本的Javascript
- 完全可链接的li元素
- 使用jquery动态创建ul-li
- tiltSlider播放/暂停视频元素(如果li有当前类)
- 使用下拉列表筛选列表(ul>li)
- 在bootstrap中显示隐藏特定的li
- 多维关联数组的最后一个索引
- AngularJS Navigation (li ng-repeat, create header li), DOM
- node.js/javascript/couchdb视图到关联数组似乎不起作用
- 使用Jquery在li内部获取具有特定文本的锚点
- 隐藏/显示包含单词的ul li项目.但只能入住李的子女
- 如何将li类更改为li id's在Jquery中
- Rails——处理多态关联上的Ajax destroy调用
- 我想将链接关联到动态创建的p元素上的相应文章
- ul-li专属功能
- ExtJS 4:编写带有模型关联的嵌套XML
- 具有关联数组数据集的D3.js表
- 强制Javascript编码与除指定元素之外的每个LI解除关联