oncontextmenu 이벤트는 오른쪽 마우스 버튼을 클릭했을 때 발생합니다. 아래 예제는 오른쪽 마우스 버튼을 클릭했을 때 하위 메뉴를 나타나게 합니다.

<style>
a { text-decoration:none; }
.smenu_hide { display: none; }
#mmenu a {
 margin: 5px;
 padding: 5px;
 background-color: #efefef;
}
#sub_menu {
 border: 3px solid #f2d0da;
 background-color: #f5dcb9;
 box-shadow: 5px 5px 5px 5px #e3dff0;
 padding: 0px 5px;
}
#sub_menu ul { padding: 0; list-style: none; }
#sub_menu li {
 list-style: none;
 padding: 0px 5px;
}
</style>

<h1>contextmenu</h1>
<div id="mmenu">
  <a href="#" class="test">링크 1</a>
  <a href="#" class="test">링크 2</a>
  <a href="#" class="test">링크 3</a>
  <a href="#" class="test">링크 4</a>
</div>
<div class="smenu_hide" id="sub_menu">
  <ul>
    <li><a href="http://www.habonyphp.com">하위 메뉴 1</a></li>
    <li><a href="http://www.habonyphp.com">하위 메뉴 2</a></li>
    <li><a href="http://www.habonyphp.com">하위 메뉴 3</a></li>
  </ul>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
if(document.getElementById('mmenu').addEventListener) {
  document.getElementById('mmenu').addEventListener('contextmenu', function(e) {
    $("#sub_menu").toggleClass("smenu_hide");
    $("#sub_menu").css({
      position: "absolute",
      top: e.pageY,
      left: e.pageX
    });
    e.preventDefault();
  }, false);
}

$(document).bind("click", function(event) {
  document.getElementById("sub_menu").className = "smenu_hide";
});
</script>


0 댓글