테스트 사이트 - 개발 중인 베타 버전입니다

[초보] body 클릭 시 창(메시지 팝업) 닫기 채택완료

김태후니 2년 전 조회 2,480

</p>

<p><div class="member_wrap after float_r">

            <div class="message po_rel">

                <div class="bell new"><!-- 새로운 메시지 있을 때는 new 클래스 -->

                    <img src="/fontawesome/svgs/solid/bell.svg" alt="">

                </div>

                <div class="message_list"> <!-- 이게 .bell을 클릭하면 나오는 메시지 목록 창입니다. -->

                    <ul>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                    </ul>

                </div>

            </div>

        </div>

        

        <script>

            $(".message .bell").click(function(){

                $(".message_list").slideToggle(100).toggleClass('open');

            });

        </script></p>

<p>

 

.bell을 클릭하면 .message_list가 나오도록 스크립트를 작성했는데,

.message_list가 나왔을 때는 (.message_list.open일 때는)

body를 클릭해도, .bell을 클릭해도 창이 닫혔으면 좋겠습니다.

 

어떻게 스크립트를 수정하면 될까요?

 

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

답변 1개

채택된 답변
+20 포인트
2년 전

</p>

<p><script src="<a href="http://code.jquery.com/jquery-latest.min.js"></script>" target="_blank" rel="noopener noreferrer">http://code.jquery.com/jquery-latest.min.js"></script></a></p>

<p><div class="member_wrap after float_r">

            <div class="message po_rel">

                <div class="bell new"><!-- 새로운 메시지 있을 때는 new 클래스 -->

                    <img src="/fontawesome/svgs/solid/bell.svg" alt="">

                </div>

                <div class="message_list"> <!-- 이게 .bell을 클릭하면 나오는 메시지 목록 창입니다. -->

                    <ul>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                        <li><a href="">참여자로 지정된 프로젝트가 있습니다. {프로젝트명}</a></li>

                    </ul>

                </div>

            </div>

        </div>

        

        <script>

            // $(".message .bell").click(function(){

            //     $(".message_list").slideToggle(100).toggleClass('open');

            // });

            $('body').on('click', function(evt){

                var obj_target = $(evt.target).closest('.message .bell').get(0);

                if (obj_target !== undefined) {

                    $(".message_list").slideToggle(100).toggleClass('open');

                } else {

                    // var has_open = $(".message_list").hasClass('open');

                    var has_open = $(".message_list").css('display') != 'none';

                    if (has_open == true) {

                        $(".message_list").slideToggle(100).removeClass('open');

                    }

                }

            });

        </script></p>

<p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

김태후니
2년 전
너무 작동 잘합니다. 감사합니다.

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

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

로그인