2019. 5. 14. 22:26
반응형
웹브라우저에서 마우스 오른쪽 클릭시 나타나는 기본 메뉴 말고 웹페이지 컨텐츠에 맞는 기능을 수행하는 커스텀 메뉴를 만들어야 할 때가 있다.
그럴 경우 jQuery나 JavaScript를 이용해서 contextmenu 이벤트에서 preventDefault를 시전하고 메뉴를 임의로 만들어서 띄워주는 방법이 있다.
하지만 그렇게 할 경우 디자인을 보장할 수 없다.
그래서 누군가 만들어 놓은 플러그인을 이용하는게 좋다.
swisnl에서 만든 jQuery contextMenu Plugin 이게 아주 좋아보였다.
다음의 간단한 예제를 통해 사용법을 간단히 알아볼 수 있다.
참고로 기본적인 사용법이 아니라 좀더 동적으로 메뉴를 구성하도록 노력했다.
그래서 매우 dynamic items스러운 예제가 될 것 같다.
- test 1
- test 2
- test 3
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.7.1/jquery.contextMenu.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.7.1/jquery.contextMenu.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-contextmenu/2.7.1/jquery.ui.position.js"></script>
<ul id="contextMenuTest">
<li>test 1</li>
<li>test 2</li>
<li>test 3</li>
</ul>
<script>
$(function(){
$.contextMenu({
selector: '#contextMenuTest li',
build: function ($trigger) {
var options = {
items: {
"menu 1": {name: "Menu 1"}
},
callback: function (key, opts, e) {
console.log(key);
if (key == "edit") {
console.log("edit: " + $trigger.text());
}
if (key == 'quit') return;
return false;
}
};
options.items["edit"] = {
name: "Edit " + $trigger.text()
};
options.items["quit"] = {
name: "Quit",
icon: function () {
return 'context-menu-icon context-menu-icon-quit';
}
};
return options;
}
});
});
</script>
반응형
'dev' 카테고리의 다른 글
[JavaScript] moment.js로 간단히 날짜 포맷 설정 (0) | 2019.06.27 |
---|---|
[Linux] 우분투 root 패스워드 변경 (0) | 2019.06.23 |
[JavaScript] 자바스크립트로 CSS 추가하기 (0) | 2019.06.04 |
[jQuery] toggleClass()로 클래스 on off 전환하기 (0) | 2019.05.22 |
[JavaScript] eval() : 문자열을 코드로 실행 (0) | 2019.05.13 |
[JavaScript] select 박스 옮기기 예제 (0) | 2019.05.09 |
[Linux] shell script for문 사용 (0) | 2019.04.24 |
[Spring] Spring Boot 웹프로젝트 만들기 (0) | 2019.04.16 |