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

알림 리스트 열리는 동작중 문제! 채택완료

Skullli 5년 전 조회 4,069

제가 초보지만 커뮤니티 홈페이지를 손보고있습니다!

기반은 https://sir.kr/g5_theme/5242">https://sir.kr/g5_theme/5242 아이스크림 테마를 사용하였습니다

 

문제는 로고밑에 넣어둔 알림표시인데 slr에서 소스를 받아서 사용을 했는데 알림을 누르면 한번 새로고침처럼 반응하는겁니다

그리고 다시한번 누르면 제대로 열리고요 혹시 무슨 문제인지 알수 있을까요?

http://hayea.cworld.kr/#">http://hayea.cworld.kr/

 

 

</strong></p>

<p><?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;

add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/alarm_in/style.css">', 0);</p>

<p>if ($member['mb_id']) {</p>

<p>    $alarm_que = "select count(al_id) as cnt from {$g5['g5_alarm_table']} where to_mb_id = '{$member['mb_id']}' and al_msg_check = 'n'";

    $alarm_cnt = sql_fetch($alarm_que);</p>

<p>    if ($alarm_cnt['cnt'] > 0) {

        $alarm_list = array();

        $que = "select * from {$g5['g5_alarm_table']} where to_mb_id = '{$member['mb_id']}' and  al_msg_check = 'n'";

        $res = sql_query($que);

        for($i=0;$row=sql_fetch_array($res);$i++) {

            $alarm_list[] = $row;

        }

        if ($alarm_cnt['cnt'] > 9) {

            $alarm_cnt['cnt'] = '9+';

        }

    }

?>

<p class="news" style="

    background: #ffffff;

    padding: 10px;

    border-radius: 5px;"> <a href="#"><i class="fa fa-bell" aria-hidden="true"></i>알림</a><?php if($alarm_cnt['cnt']) { ?><span class="arm_count">  <?php echo $alarm_cnt['cnt'] ?></span><?php } ?></p>

<div id="news">

        <?php /*?><h2>새소식<span class="arm_count"><?php echo $alarm_cnt['cnt']?></span></h2><?php */?>

        <div id="ol_arm">    

            <ul id="dd_arm" style="display: none; 

                                   padding: 10px;

    background: #fff;

    border-radius: 5px;

                                   margin-top: -10px;

"">

               <?php

                for($i=0;$i<count($alarm_list);$i++) {

                $link_url = get_pretty_url($alarm_list[$i]['al_msg_table'], $alarm_list[$i]['al_msg_id'],'#c_'.$alarm_list[$i]['al_msg_id']);

                if ($alarm_list[$i]['al_msg_type'] == 'm') { //쪽지

                    $link_url = G5_BBS_URL.'/memo_view.php?me_id='.$alarm_list[$i]['al_msg_id'].'&kind=recv';

                    $msg = '<span class="from_nick">'.$alarm_list[$i]['from_mb_nick'].'</span>님이 쪽지를 보내셨습니다.';

                } elseif ($alarm_list[$i]['al_msg_type'] == 'c') { //댓글

                    $msg = '<span class="from_nick">'.$alarm_list[$i]['from_mb_nick'].'</span>님이 '.$alarm_list[$i]['al_msg_subject'].'에 댓글을 남기셨습니다.';

                } elseif ($alarm_list[$i]['al_msg_type'] == 'a') { //좋아요, 싫어요

                    $msg = '<span class="from_nick">'.$alarm_list[$i]['from_mb_nick'].'</span>님이 '.$alarm_list[$i]['al_msg_subject'].'를 남기셨습니다.';

                } else { //답글

                    $msg = '<span class="from_nick">'.$alarm_list[$i]['from_mb_nick'].'</span>님이 '.$alarm_list[$i]['al_msg_subject'].'에 답글을 남기셨습니다.';

                }

                echo '<li class="alarm_layer_list" data-href="'.$link_url.'" data-msgtype="'.$alarm_list[$i]['al_msg_type'].'" data-alid="'.$alarm_list[$i]['al_id'].'" style="

    padding: 5px;

" >'.$msg.'</li>';

            }

            if($i == 0) {

                echo '<li class="arm_empty" style="

    padding: 5px;

">아직 새로운 알림이 없습니다.</li>';

            }

            ?>

                <?php /*?><li><a href="<?php echo G5_PLUGIN_URL ?>/alarm_in/alarm_list.php" class="view_all" style="

    padding: 5px;

"><strong>전체보기</strong></a><?php */?><a href="#" class="read_all" style="

    padding: 5px;

"><strong>모두읽음</strong> (읽은 알림은 더 이상 볼 수 없습니다.)</a></li>

            </ul>

        </div>

    </div>

<script>

$(function() {

    $('p.news a,p.news span').on('click', function(e) {

        $("#news").fadeToggle(100);

        $("#account").fadeOut(100);

        var show = $("#dd_arm").css('display');

        if (show == 'none') {

            //ajax_msgload();

            $("#dd_arm").show();

        } else {

            //$("#dd_arm").hide();

        }

    });</p>

<p>    $('.read_all').on('click', function() {

        $.ajax({

            type: "POST",

            data: {act:'alarm_read_all'},

            async: false,

            url: '<?php echo G5_PLUGIN_URL; ?>/alarm_in/ajax.alarm.php',

            success: function(data) {

                //console.log(data);

                html = '';

                html += '<li class="alarm_layer_empty">새로운 알람이 없습니다.</li>';

                $('#alarm_layer > ul').html(html);

                $('.alarm_cnt').html('0');

            }

        });

    });</p>

<p>    $('.alarm_layer_list').on('click', function() {

        var $this = $(this),

            href = $this.data('href'),

            msgtype = $this.data('msgtype'),

            alid = $this.data('alid');

        $.ajax({

            type: "POST",

            data: {act:'alarm_read', alid:alid},

            async: false,

            url: '<?php echo G5_PLUGIN_URL; ?>/alarm_in/ajax.alarm.php',

            success: function(data) {

                console.log(data);

                if (msgtype == 'm') { //쪽지

                    win_memo(href);

                    return false;

                } else {

                    document.location.href = href;

                    return false;

                }

            }

        });

    });

});

</script>

<?php } ?></p>

<p><strong>

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

답변 1개

답변이 늦었는데, 보셨으면 좋겠네요 :-)

 <a href="#"><i class="fa fa-bell" aria-hidden="true"></i>알림</a>
알림 부분에 a 태그로 돼 있어서 그래요.  html5에서 href="#id"를 넣으면 해당 id값을 가진 엘리먼트 위치로 이동 할 수 있고, #만 넣으면 상단으로 이동해서 <a href="#"></a> 많이들 쓰는데,  지양하는 방법이예요. hover 때문에 넣은듯 한데, <a></a>가 아닌 다른 태그를 넣어주던가 (button etc)
<a href="javascript:void(0);"><i class="fa fa-bell" aria-hidden="true"></i>알림</a>
같이 의미없는 태그로 쓸 수 있도록 바꿔주시던가. 그것도 귀찮으면 공통 부분에
$('a[href="#"]').click(function(e) { e.preventDefault(); });
위 코드를 넣어서 허위 링크에 작동되지 않도록 넣어주는게 좋을것 같습니다.
로그인 후 평가할 수 있습니다

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

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

로그인