Discourse는 SPA, 즉 단일 페이지 애플리케이션입니다. 이는 <head>에 추가한 JavaScript가 올바른 메서드를 사용하지 않는 한 초기 페이지 로드 시에만 한 번 실행된다는 것을 의미합니다. 이벤트 핸들러/리스너를 기반으로 실행되도록 코드를 수정해야 할 수 있습니다.
네, 그렇게 해야 한다고 생각하지만, 그사이 수정 방법을 찾았습니다. 문제는 body.navigation-categories 대신 body.categories-list를 사용하고 있었던 것이었습니다. body.categories-list는 하위 카테고리 페이지에서도 사용되는데, 해당 페이지에 있을 때 코드가 전혀 작동하지 않았습니다(이유를 모르겠습니다).
코드를 수정했는데 이제 작동하는 것 같습니다. 하지만 모든 페이지에서 실행됩니다. 이전 코드에서는 .navigation-categories와 .navigation-topics 페이지에서만 코드가 실행되도록 하려고 했는데, 아마 이것이 문제인 것 같습니다. 어쨌든 도움이 필요합니다. 감사합니다.
$(function() {
$(window).on("scroll touchmove", function () {
if ($(this).scrollTop() > 70) {
$('.d-header-wrap').addClass('cd-active');
} else {
$('.d-header-wrap').removeClass('cd-active');
}
});
});