알림 리스트 열리는 동작중 문제!

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
알림 리스트 열리는 동작중 문제!

QA

알림 리스트 열리는 동작중 문제!

본문

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

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

 

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

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

http://hayea.cworld.kr/

 

 


<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;
add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/alarm_in/style.css">', 0);
if ($member['mb_id']) {
    $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);
    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();
        }
    });
    $('.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');
            }
        });
    });
    $('.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 } ?>

이 질문에 댓글 쓰기 :

답변 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(); });
위 코드를 넣어서 허위 링크에 작동되지 않도록 넣어주는게 좋을것 같습니다.
답변을 작성하시기 전에 로그인 해주세요.
전체 0
QA 내용 검색
  • 개별 목록 구성 제목 답변작성자조회작성일
  • 질문이 없습니다.

회원로그인

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