自定义右击菜单

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>匿名函数和闭包</title>

<script>
//跨浏览器添加事件
function addEvent(obj, type, fn) {
    if (obj.addEventListener) {
        obj.addEventListener(type, fn, false);
    } else if (obj.attachEvent) {
        obj.attachEvent('on' + type, fn);
    }
}

//跨浏览器移除事件
function removeEvent(obj, type, fn) {
    if (obj.removeEventListener) {
        obj.removeEventListener(type, fn, false);
    } else if (obj.detachEvent) {
        obj.detachEvent('on' + type, fn);
    }
}


function preDef(evt) {
var e = evt || window.event;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
}

addEvent(window, 'load', function () {
    var text = document.getElementById('text');
    addEvent(text, 'contextmenu', function (evt) {
        preDef(evt);
        var menu = document.getElementById('menu');
        var e = evt || window.event;
        menu.style.left = e.clientX + 'px';
        menu.style.top = e.clientY + 'px';
        menu.style.display = 'block';
        
        addEvent(document, 'click', function () {
            menu.style.display = 'none';
        });
    });
});




</script>
<style type="text/css">
#menu {
    width:50px;
    background:orange;
    position:absolute;
    display:none;
}
</style>
</head>
<body>

<textarea id="text" style="width:200px;height:100px;"></textarea>
<ul id="menu" >
    <li>菜单1</li>
    <li>菜单2</li>
    <li>菜单3</li>
</ul>




</body>
</html>

 

posted @ 2016-10-16 15:07  ChineseMoonGod  阅读(154)  评论(0编辑  收藏  举报