채택완료

버튼 2클릭 시, 이미 열린 버튼1,3의 내용이 사라지게 하려면?

https://codepen.io/sinbi/pen/XWXNOyM

 

즉, 해당 번호의 내용만 나타나게 하려면 어떤 식으로 수정해야 할까요?

not() 이란 걸 써먹으면 어케 될 것도 같긴 한데....

 

관련글 https://sir.kr/qa/364660

|

답변 3개 / 댓글 5개

채택된 답변
+20 포인트

단순하게 생각한다면, toggle 전에 해당하는 .con 클래스의 내용들을 먼저 숨김처리하면 되지 않을까요?

좀 조건이 들어가면 먹히지 않겠지만요

Copy
$('.con').hide();

$(this).siblings(".con").toggle();

 

답변에 대한 댓글 2개

천재셈 !! (^ __________ ~ ) ===b
그런데 위처럼 하니까,
해당 요소의 toggle() 기능이 작동 안 되는 버그가 생기네요. ㅜㅜ
제이쿼리의 세계는 ....알다가도 모를 일이네요.ㅎ

버그는 아닙니다.

$('.con').hide();

=> 내용1, 내용2, 내용3 을 모두 숨김 처리

 

$(this).siblings(".con").toggle();

=> 나의 자매 내용만 토글 처리 (이전 라인에서 숨김 처리된 뒤이기 때문에.. 항상 보임처리로 작동합니다.)

답변에 대한 댓글 2개

아하, 그렇게 된거군요. 설명 감사합니다.
저도 잘 모르던 부분이었는데 친절한 설명에 배워갑니다. 감사합니다. :D

@sinbi 확신은 가지 않지만 간헐적으로 이벤트가 동작되는 순서가 꼬이는 경우로 보입니다.

hide 이벤트가 완료후에 toggle이 동작되도록 하면 되지 않을까 싶습니다.

답변에 대한 댓글 1개

아직 실력이 부족해서, 종료 후 동작 그런 건 잘 몰라용. ㅎ

답변을 작성하려면 로그인이 필요합니다.