더보기 버튼
v.1
const btnMores = document.querySelectorAll('.btn-more'); btnMores.forEach(function (btnMore) { const toggleBox = btnMore.nextElementSibling; // btn-more의 바로 옆에 있는 toggle-wrap btnMore.addEventListener('click', function (event) { event.stopPropagation(); // 다른 활성화된 toggle-wrap 비활성화 document.querySelectorAll('.toggle-wrap.active').forEach(function (box) { if (box !== toggleBox) { box.classList.remove('active'); } }); // 현재 toggle-wrap의 활성화 상태를 토글 toggleBox.classList.toggle('active'); }); });
기존 코드는 화면이 변경되면 동작을 하지 않아서 아래 MutationObserver 적용함
v.2
// btn-more와 toggle-box 처리 함수
function setupToggleButtons() {
document.querySelectorAll('.btn-more').forEach(function (btnMore) {
if (btnMore.dataset.eventAdded) return; // 이미 이벤트가 추가된 요소는 제외
btnMore.dataset.eventAdded = true; // 중복 방지 플래그 설정
const toggleBox = btnMore.nextElementSibling; // btn-more의 바로 옆에 있는 toggle-wrap
btnMore.addEventListener('click', function (event) {
event.stopPropagation();
// 다른 활성화된 toggle-wrap 비활성화
document.querySelectorAll('.toggle-wrap.active').forEach(function (box) {
if (box !== toggleBox) {
box.classList.remove('active');
}
});
// 현재 toggle-wrap의 활성화 상태를 토글
toggleBox.classList.toggle('active');
});
});
}
// 최초 실행
setupToggleButtons();
// MutationObserver를 이용하여 DOM 변경 감지
const observer = new MutationObserver(function (mutations) {
mutations.forEach(function (mutation) {
if (mutation.type === 'childList') {
setupToggleButtons(); // 새로운 요소가 추가될 때 다시 실행
}
});
});
// body의 변화 감지 (자식 요소 추가/삭제 감지)
observer.observe(document.body, { childList: true, subtree: true });
제목 | 날짜 | ||
---|---|---|---|
25 | 라이믹스 후하니 스티커 모듈 | 2025/01/21 | 1 |
24 | 해시태그 자바스크립트 | 2025/02/01 | 2 |
23 | [미입금] 새로운 사이트에 후하니님의 스티커 모듈 설치 의뢰 [1] | 2025/01/21 | 2 |
22 | 스크랩(threads) v1 [1] | 2025/01/31 | 2 |
21 | 글보기에서 바로 비밀글 설정하는 방법 [1] | 2025/01/30 | 3 |
20 | 더보기 php 코드 | 2025/01/31 | 3 |
19 | 마이로그 | 2025/02/01 | 3 |
더보기 버튼 | 2025/02/01 | 3 | |
17 | 스크랩 ec_imin | 2025/01/31 | 3 |
16 | 파이어베이스 [1] | 2025/02/01 | 4 |
15 | 설치경로 | 2025/02/02 | 4 |
14 | [XE] 인기검색어 모듈+애드온+위젯 패키지 (PHP8수정버전) 문의 드립니다 [1] | 2025/01/06 | 5 |
13 | [Tips] 라이믹스 모든 글 최신글 가져오기 코드 | 2025/01/29 | 6 |
12 | 라이믹스 debugPrint | 2025/01/24 | 8 |
11 | [Tips] 라이믹스 특정 게시판 글 가져오기 | 2025/01/29 | 9 |
10 | [레거시코드] pointhistory 모듈 유지보수 방법 | 2025/01/16 | 9 |
9 | 라이믹스 게시판 스크랩 기능 | 2025/01/21 | 9 |
8 | 글추천 버튼 | 2025/01/31 | 10 |
7 | 밍구님의 따뜻한 한마디 | 2025/01/27 | 11 |
6 | 새로고침 없는 좋아요 버튼 [3] | 2025/01/31 | 12 |