inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

트렐로 개발로 배우는 Vuejs, Vuex, Vue-Router 프론트엔드 실전 기술

카드 생성 1 - 마크업

쌤 도와주세요

401

SA

작성한 질문수 1

5

11:40 부터 진행하는 '폼의 바깥을 누르면 닫히는기능'을 하고 있는데요.. (제 코드에 오타가 있을까봐) AddCard.vue와 List.vue를 전부 복붙도 해봤습니다. 복붙을 해도 안된다면 어디에서 문제가 있는걸까요? 저것만 적으면 잘되던 Add Card도 펼쳐지지 않습니다 ㅠㅠ. 오류를 해결할수있는 방법을 알려주셨으면 합니다.

mounted() {
    this.setupClickOutside(this.$el)
  },
  methods: {
    setupClickOutside(el) {
      document.querySelector('body').addEventListener('click', e => {
        if (el.contains(e.target)) return 
        this.$emit('close')
      })
    }
  }

javascript vuejs

답변 3

19

정진환

Add a Card..버튼을 클릭 하면  AddCard 컴포넌트가 마운트되고  setupClickOutside(this.$el)이 실행되어 리스너등록이 되고  .add-card-btn (Add a Card버튼)을 누른 이벤트가 상위엘리먼트로 버블링됩니다. 그때  버튼보다 상위 엘리먼트에서 같은 이벤트가 일어나는데 이벤트.타켓을 넘겨받고 넘겨받은  버튼엘리먼트가 AddCard컴포넌트 외부에 있어 close가 에밋되버려 바로 닫혀버리는  것 같습니다.

버블링을 막아주셔서 

<a href @click.prevent.stop="isAddCard=trueclass="add-card-btn">&plus; Add a Card...</a>

이렇게 해결해 주시면 될 것같아요.

7

이희영

저도 똑같은 문제를 겪었는데 강사님은 어떻게 되셨는지 모르겠지만 e.target이 add-card-btn이 되었을 때 el(여기서 add-card) 이 버튼을 포함하지 않고 있기 때문에 return되지 않고 그대로 진행이 되서 close이벤트가 발생되는 것 같습니다. 따라서 저는 저 조건문에 임시방편으로 e.target.className === "add-card-btn"일 때를 추가해줬는데 동작하고 있습니다. 그렇지만 강사님은 어떻게 되셨는지 궁금합니다 ㅠㅠ 

0

김정환

올려 주신 정보만으로는 파악하기가 좀 어려운데요. 지금까지 작업하신 결과물을 올려 주시면 파악하는데 수월할 것 같습니다. (깃헙이나 링크 등등)

0

Kenneth Jung

https://github.com/jeonghwan-kim/lecture-vue-trello/commit/5ae6d24f9d72d4bd9d6d4361f8b837e10cf7523d

이 부분과 코드가 같은데요

el과 e.target 을 console.log를 통해 받아온 결과가 아래 이미지와 같습니다.

 

 

List.vue 에서 클릭해서 들어가는 부분에서 클릭한 부분이 AddCard.vue보다 바깥부분이라 내부로 들어가질 못하고 있습니다.

좋은 답변을 해주신 분이 있지만 강사님이라면 어떻게 생각하고 계신지 궁금해서 대댓글 작성해봅니다.

객체가 함께 반환되는데 왜 그럴까요

1

135

2

babel-core module 에러

0

227

2

watch와 computed

1

247

1

nextTick 관련 질문

0

705

1

a 태그에 href를 빈 값으로 계속 주는 이유

0

768

1

함수에서 _를 사용하셨는데 어떨때 쓰이는 건가요?

0

348

1

watch로 router 감시할 때

0

407

1

보드 아이템 배경색 변경 관련 질문

0

288

1

NavigationDuplicated 에러

0

673

1

vue-router 설치 중 계속해서 오류가 발생합니다.

2

1414

2

로컬 스토리지 관련 질문입니다!

0

469

1

<router-link> 질문

0

310

1

(재질문/Vuex 적용 - 인증 1) 강의에서 8분 18초 부분 질문 있습니다.

0

285

1

router-link 와 router-view 의 차이를 모르겠습니다!

1

1090

1

왜 index.js를 바로 볼 수 있나요?

0

366

2

리스트 내 카드 이동 오류

1

542

0

보드를 추가했을 때 추가한 보드에 대한 화면 업데이트(?) 갱신(?)에 관한 질문입니다.

0

292

1

(Vuex 적용 - 인증 1) 강의에서 8분 18초 부분 질문 있습니다.

0

444

1

npm install 시 에러

0

992

2

안녕하세요 리스트 이동 관련 질문이 있습니다.

0

321

2

질문이 있습니다.

0

299

1

마지막 부분에 로그아웃 해서 로그인 화면으로 돌아왔을 때

0

268

1

소스 공유 받을수 있을까요?

0

329

1

setAuthInHeader 했는데 오류가 발생합니다.

0

250

1