2013-01-23 2 views
2

Я потратил некоторое время на поиск, но не смог найти ответ на этот вопрос. Когда пользователь выполняет какие-либо действия на моем сайте, корректно отображается сообщение jGrowl. Однако, если пользователь затем обновляет страницу, сообщение неожиданно перерисовывается. Также, когда пользователь переходит от страницы, а затем нажимает кнопку возврата браузера, неожиданно отображается сообщение jGrowl.Как предотвратить повторное отображение сообщения jGrowl при обновлении страницы?

Я установил точку останова в коде, и он попадает только в первый раз, когда ожидается сообщение jGrowl. Обновление страницы не приводит к попаданию точки останова.

Так как я могу предотвратить это неожиданное поведение? Спасибо за ваше время.

Я бы подумал, что это проблема, для которой многие люди нуждаются в решении.

<#escape x as x?js_string> 
$(function(){ 

    $("a[name=preview]").fancybox({type:'ajax'}); 

    // We use jGrowl for the popups that appear in the corner 
    $.jGrowl.defaults.closer = false; 
    <#if confirmMessage??> 
     $("#jgrowlcontainer").jGrowl("${springMacroRequestContext.getMessage(confirmMessage)}"); 
    </#if> 

    // Delete a program 
    $('#deleteProgram').click(function(){ 
     $.fancybox.open('<p>Are you sure you want to delete this program?</p>'+ 
         '<button id="deleteProgram">DELETE</button> <button id="deleteCancel">CANCEL</button>'); 
     return false; 
    }); 
    $("body").on("click","button#deleteCancel",function(){ 
     $.fancybox.close(); 
    }); 
    $("body").on("click","button#deleteProgram",function(){ 
     $.fancybox.close(); 
     $('form').attr('action','/build/deleteProgram.html').submit(); 
     return false; 
    }); 

}); 
</#escape> 
+1

Не могли бы вы предоставить код? –

+0

Является ли «липкое» свойство проблемного уведомления ложным? – ktamlyn

+0

Да, липкая ложь. – r0144

ответ

0

Я решил проблему. Когда страница обновляется, я на самом деле могу попасть в точку останова в другом методе кода. Этот метод видит, что старое сообщение по-прежнему имеет ненулевое значение и снова добавляет сообщение в модель, которая снова отображается в интерфейсном коде. Чтобы исправить это, я использую флаг, который устанавливается, когда выполняется действие, которое должно отображать сообщение. Затем я использую этот флаг для условного добавления сообщения в модель. Затем флаг сбрасывается.

Смежные вопросы