:: 게시판
:: 이전 게시판
|
- PGR21 관련된 질문 및 건의는 [건의 게시판]을 이용바랍니다.
- (2013년 3월 이전) 오래된 질문글은 [이전 질문 게시판]에 있습니다. 통합 규정을 준수해 주십시오. (2015.12.25.)
통합규정 1.3 이용안내 인용"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
23/06/22 13:46
아아 글 내용에서 누락이 되었었군요! this.$refs로 해도 안 되더군요 ㅠㅠ
하도 답답해서 this.refs 로도 시도해본게 글 내용에 누락이 되었군요 this.$refs 로 해도 콘솔창은 (reading 'refs') 오류 뱉습니다 ㅠㅠ
23/06/22 13:57
이렇게 처리하시는건 어떠신가요?
const isActive = ref(false); const toggleOption = () => { isActive.value = !isActive.value; } <div :class="isActive ? 'active' : '' " >
23/06/22 14:10
직접 DOM 조작하는 것 보다는 반응형 변수로 통제하는 게 권장됩니다
<template> <div :class="{ active: isActive }"> <button @click="toggleOption">button</button> </div> </template> <script> import { ref } from 'vue'; export default { setup() { const isActive = ref(false); function toggleOption() { isActive.value = !isActive.value; } return { isActive, toggleOption }; }, }; </script>
23/06/22 14:22
답변 감사합니다~!
혹시 같은 형태의 div, button 형태가 형제로 하나 더 있고 하나를 클릭하면 다른 형제는 클래스바인딩 걸어놓은게 false가 되게 하는 방법이 있을까요? 두벌이라고 가정했을 때 isActive1, isActive2 이런 식으로 각각 변수지정하니 되긴 하던데 왠지 좋은 방법은 아닌 것 같아서요~ 세벌일땐 isActive3, 10개일 땐 isActive10까지 양산할 수는 없으니까요 ^^;;
23/06/22 16:30
윗 댓글에 대한 답을 드리자면 현재 선택된 형제(?)의 id를 저장해두는 ref를 만들고,
현재 요소의 id가 ref에 있는 id와 같을 경우에만 active 클래스를 붙이면 될 것 같습니다.
23/06/22 21:04
ref로는 댓글이 있으니 reactive로 해 보면...
script setup const state = reactive({ current: 0 }); 각 버튼마다 @click할 때에 setCursor(1) 같은 거 실행되게 해 주고, setCursor(i)는 state.current = i; 하게 하고... div에는 :class 해서 state.current에 따라서 특정 클래스가 붙게 해주면...
|