[vue.js] 요소 외부클릭 감지하기 (외부클릭시 요소 변경)

2022. 7. 5. 10:10·과거의 이력/Vue.js

vue 개발환경에서 특정 버튼 클릭시 드롭다운을 활성화 하며,

해당 드롭다운 외부를 클릭할 시 드롭다운을 없애야하는 기능을 구현해야 했다.

 

이를 위해 특정 요소 외부클릭을 인식해야했다.

dom 요소 직접접근하는 방식과 라이브러리를 사용하는 방식 등이 있었으며 나는 추후 이벤트값 활용을 위해 후자를 선택했다.

 


 

버튼을 클릭하여 드롭다운을 활성화 한 상태일때, 화면은 아래와 같은 모양이다.

 

 

 

 

 

 

1. 라이브러리 인스톨

 

나는 v-click-outside 라이브러리를 사용하였다.

우선 라이브러리 인스톨을 수행한다.

npm install v-click-outside

 

 

2.  import 및 directives 추가

import vClickOutside from 'v-click-outside'

export default {

  directives: {
    clickOutside: vClickOutside.directive
  },
  
  ...
  
  }

 

 

 

3. 이벤트 걸기

<div id="dropdown-list" v-click-outside="onClickOutside">
   <button>메뉴 1</button>
   <button>메뉴 2</button>
   <button>메뉴 3</button>
</div>

원하는 요소에 v-click-outside 이벤트를 건다.

 

이렇게 하면 id가 dropdown-list인 요소 이외 공간을 클릭할시,

onClickOutside 메소드가 동작하며 이벤트가 발생하게 된다.

 

 

 

 


참고링크 : https://www.npmjs.com/package/v-click-outside

 

 

 

 

 

 

 

 

'과거의 이력 > Vue.js' 카테고리의 다른 글

[vue] selectbox default 값 지정하는 방법 (v-model)  (0) 2022.09.27
[웹팩] webpack.config.js VS vue.config.js  (0) 2022.05.31
[웹팩] Vue에 jquery 전역 등록하기  (0) 2022.05.17
Vue.js 플러그인 사용하기 (install, use 메소드)  (0) 2022.05.16
main.js 공통함수 전역 선언하기  (0) 2022.05.16
'과거의 이력/Vue.js' 카테고리의 다른 글
  • [vue] selectbox default 값 지정하는 방법 (v-model)
  • [웹팩] webpack.config.js VS vue.config.js
  • [웹팩] Vue에 jquery 전역 등록하기
  • Vue.js 플러그인 사용하기 (install, use 메소드)
정많이 정만이
정많이 정만이
jeongmany
  • 정많이 정만이
    정많이 정만이
    정많이 정만이
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • 과거의 이력 (71)
        • CS (12)
        • 프론트엔드 (4)
        • javascript (21)
        • Vue.js (7)
        • bootstrap (1)
        • [그리드] ag-grid (3)
        • [그리드] vue-grid-layout (1)
        • HTML_CSS (5)
        • NPM (1)
        • [차트]highcharts (0)
        • JAVA (9)
        • 백엔드 (1)
        • 기본개념 (손필기) (5)
        • 프로그래머스 (1)
      • 알고리즘 (6)
      • 통계 (9)
        • 통계지식 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    js
    vue.js
    vuejs
    vue.config.js
    CSS
    HTML
    Webpack
    selectbox
    ag-grid
    코딩테스트
    webpack.config.js
    aggrid
    우분투
    bootstrap
    자바스크립트
    알고리즘
    ubuntu설치
    ubuntu
    js map
    ES6
    반복문
    개발자
    VirtualBox
    공유메모리
    cs
    버추얼박스
    객체
    vue
    java
    JavaScript
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
정많이 정만이
[vue.js] 요소 외부클릭 감지하기 (외부클릭시 요소 변경)
상단으로

티스토리툴바