2014-09-19 2 views
0

방금 ​​gritter 알림 플러그인을 사용하고 이상한 동작을 경험하기 시작했습니다. 페이지로드시 알림을 표시하고 있는데 어떤 이유로 동일한 메시지가 두 번 나타납니다. 누군가가 내 코드를 점검하고 간과 한 오류를 강조 표시하면 고맙게 생각합니다. 플러그인 링크는 http://boedesign.com/blog/2009/07/11/growl-for-jquery-gritter/입니다. 많은 감사합니다.Jquery 알림 이벤트 두 번 실행

불을 지르고 FROM 업데이트 된 HTML

<div id="gritter-notice-wrapper"> 

    <div id="gritter-item-2" class="gritter-item-wrapper" role="alert" style=""> 
     <div class="gritter-top"></div> 
     <div class="gritter-item"> 
      <a class="gritter-close" tabindex="1" href="#" style="display: none;"> 

       Close Notification 

      </a> 
      <div class="gritter-without-image"> 
       <span class="gritter-title"> 

        New Message 

       </span> 
       <p> 

        You have 

        <span class="yourstyle"> 

         1 

        </span> 

        new message(s). Please go to the message area in … 

       </p> 
      </div> 
      <div style="clear:both"></div> 
     </div> 
     <div class="gritter-bottom"></div> 
    </div> 


    <div id="gritter-item-3" class="gritter-item-wrapper" role="alert" style=""> 
     <div class="gritter-top"></div> 
     <div class="gritter-item"> 
      <a class="gritter-close" tabindex="1" href="#"> 

       Close Notification 

      </a> 
      <div class="gritter-without-image"> 
       <span class="gritter-title"> 

        New Message 

       </span> 
       <p> 

        You have 

        <span class="yourstyle"> 

         1 

        </span> 

        new message(s). Please go to the message area in … 

       </p> 
      </div> 
     </div> 
     <div class="gritter-bottom"></div> 
    </div> 

</div> 


<div id="messages" style="float: left;height: 220px"> 
    <div> 
     Messages 
    </div> 
    <div style="overflow: hidden;"> 
     <div id="message"style="font-size: 11px; padding: 10px 10px;" > 

      <?php 

       mysql_select_db($database_domain, $domain); 
       $query1 = "SELECT * FROM messages WHERE to_user = '$_SESSION[kt_name_usr]' AND `read` = 1"; 
       $result1 = mysql_query($query1) or die(mysql_error()); 
       $totalRows1 = mysql_num_rows($result1); 
       if (mysql_num_rows($result1) ==0) { 
       $error1 = true; 
       $message3 = "You have no new messages."; 
       } else { 
       // There was a result 
       // now check if there were any records. 
        if (mysql_num_rows($result1) >0) {  
         $error1 = false; 
         $messages1 = "You have" . " " . "<span class='yourstyle'>" . $totalRows1 . "</span>" . " " . "new message(s). Please go to the message area in your control panel."; 
        } 
       } 

       if($error1 == 0) { 

        echo "You have" . " " . "<span class='yourstyle'>" . $totalRows1 . "</span>" . " " . "new message(s). Please go to the message area in your control panel."; 

        echo "<SCRIPT type=text/javascript>\n"; 
        echo "$(function() {\n"; 
        echo "$(\"#testid\").show()\n"; 
        echo "$.gritter.add({title: 'This is a notice', text: \"".$messages1."\"})\n"; 
        echo "});\n"; 
        echo "</script>\n"; 

       } else { 

        echo 'There are no new system or site messages to display.'; 

       } 

      ?> 

      </div> 

      </div> 

      </div> 

      <div id="testid" style="display:none;"></div> 

해결책 :

<script type="text/javascript"> 
     $(function() { 
      var newmsg = <?php echo json_encode($messages1) ?>; 
      $.gritter.add({title: 'New Message', text: newmsg, time: 4000, sticky: false}); 
    }); 
</script> 
+0

내가 페이지로드에있는 모든 알림을 찾을 수 없습니다,이 라인을 주석 . 아마도 당신은 바이올린을 제공 할 수 있습니까? –

+0

@theScorpion fiddle은 PHP 마크 업을 허용하지 않습니다. 감사합니다 – user1532468

답변

0

그냥

echo "You have" . " " . "<span class='yourstyle'>" . $totalRows1 . "</span>" . " " . "new message(s). Please go to the message area in your control panel."; 
+0

안녕 Apul. 여전히 동일합니다. 두 번 발사. 감사합니다 – user1532468

+0

전체 html로/PHP 코드를 게시하시기 바랍니다. –

+0

그것이 전체 코드입니다. – user1532468