댓글 comment 영역의 스크립트를 onclick 으로 바꾸기 > 그누보드5 팁자료실

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!

그누보드5 팁자료실

댓글 comment 영역의 스크립트를 onclick 으로 바꾸기 정보

댓글 comment 영역의 스크립트를 onclick 으로 바꾸기

본문

 

현재 그누 기본 게시판의 각각의 댓글 영역은 아래처험 되어 있습니다.

 

<article id="c_123">
    html 코드;
    <script>댓글설정 토글옵션</script>
</article>

 

----------

 

그런데 이건 c_123 전체의 innerHTML 을 바꾸는 이벤트 (제이쿼리에서는 html() 인가? 제이쿼리는 한번도 안 써 봐서 그 이름을 잘 모르겠는데 여하튼)를 줄 수 없습니다.

가령 ajax 로 댓글을 수정하고 c_123 의 내용을 바꿀 때라거나 등등... 을 실행할 수 없는 것이

애초에 innerHTML 에는 자바스크립트 소스가 해당되지 않기 때문이죠.

그래서... 이걸 innerHTML 의 적용이 가능한 코드로 바꿔 보았습니다.

 

----------

 

view_comment.skin.php 에서

 


<button type="button" class="btn_cm_opt btn_b01 btn"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">댓글 옵션</span></button>
 
위 부분을 찾아 아래처럼 바꿉니다.
 
<button type="button" class="btn_cm_opt btn_b01 btn" onclick="commentDisplay(this)"><i class="fa fa-ellipsis-v" aria-hidden="true"></i><span class="sound_only">댓글 옵션</span></button>

 

----------

 


<ul class="bo_vc_act">
 
를 아래처럼 바꿉니다.
 
<ul class="bo_vc_act" style="display:none">

 

----------

 

아래의 스크립트를 삭제합니다.

 


        <script>
            $(function() {                
            // 댓글 옵션창 열기
            $(".btn_cm_opt").on("click", function(){
                $(this).parent("div").children(".bo_vc_act").show();
            });
                
            // 댓글 옵션창 닫기
            $(document).mouseup(function (e){
                var container = $(".bo_vc_act");
                if( container.has(e.target).length === 0)
                container.hide();
            });
        });
        </script>

 

----------

 

문서 하단에 아래의 스크립트를 추가합니다.

 


function commentDisplay() {
    redButton = arguments[0].nextElementSibling;
    if (redButton.style.display === "none") redButton.style.display = "block";
    redButton.onmouseover = function() { document.querySelector("body").onmouseup = function() { redButton.style.display = "block"; } }
    redButton.onmouseout = function() { document.querySelector("body").onmouseup = function() { redButton.style.display = "none"; } }
}
추천
4

댓글 8개


죄송합니다. 저는 제이쿼리를 쓴 적이 없고 앞으로도 그럴 거에요.
$ 자가 들어가는 스크립트는 그냥 덮어버려요.ㅋ
물론 ${변수} 같은 모던 바닐라의 경우는 열외이구요.
아작스도 바닐라로 처리합니다.
만일 클릭시에 추가 옵션이 필요하다면 "천연 자바스크립트"로
addEventListener("click") 를 사용하긴 하겠죠. 이건 이 기능 이외에 달리 추가할 건덕지가 없어서 가장 간명하게 onclick 를 준 거구요.

물론 저도 본인들의 스타일을 존중합니다.
아마 제이쿼리랑 부트스트랩 안 쓰고 뭘 만드는 사람은 저밖에 없을지도 모릅니다.
울 큰 애가 주로 오라클을 쓰는 jsp 개발자인데 저보고 천연기념물이라고 합니다.ㅋ
전체 2,431 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT