728x90

특정 영역에서만 우클릭 이벤트를 발생시키고 싶어서 event 함수를 적용해서 처리했다.

 

또 사용할 것 같은 기능이라 정리!

 

CSS
.custom-menu {
    display: none;
    z-index: 1000;
    position: absolute;
    overflow: hidden;
    border: 1px solid #CCC;
    white-space: nowrap;
    font-family: sans-serif;
    background: #FFF;
    color: #333;
    border-radius: 5px; 
    margin:0;
    padding:0;
}

.custom-menu li {
    padding: 8px 12px;
    cursor: pointer;
}

.custom-menu li:hover {
    background-color: #DEF;
}

 

HTML
<ul class='custom-menu'>
  <li data-action = "F">First</li>
  <li data-action = "S">Second</li>
  <li data-action = "T">Third</li>
</ul>

<div class="treeList">
  우클릭 이벤트 영역!
</div>

 

JS
// Trigger action when the contexmenu is about to be shown
$(document).bind("contextmenu",function (event){
     if(event.target.classList.contains('treeList')) {
            // Avoid the real one
            event.preventDefault();

            // Show contextmenu
            $(".custom-menu").finish().toggle(100).

            // In the right position (the mouse)
            css({top: event.pageY +"px",left: event.pageX +"px"});
       }
});

// If the document is clicked somewhere
$(document).bind("mousedown",function (e){
     // If the clicked element is not the menu
     if(!$(e.target).parents(".custom-menu").length >0) {
             // Hide it
             $(".custom-menu").hide(100);
      }
});

// If the menu element is clicked
$(".custom-menu li").click(function(){
      // This is the triggered action name
      switch($(this).attr("data-action")) {
              // A case for each action. Your actions here
              case "F": alert("first");
              break;
              case "S": alert("second");
              break;
              case "T": alert("third");
              break;
       }
   
        // Hide it AFTER the action was triggered
        $(".custom-menu").hide(100);
});

 

참고 사이트

jsfiddle.net/u2kJq/241/

728x90

'개발 지식 > Etc.' 카테고리의 다른 글

H2 DataBase 초기 접속  (0) 2022.06.09
ngrok - 외부에서 사내 IP 환경 접속 시  (0) 2022.03.31
입고 알림봇 (Python + 카카오톡)  (2) 2022.02.26
복사했습니다!