Показывать диалог jquery один раз для каждого пользователя - PullRequest
0 голосов
/ 21 апреля 2011

Я использую модальное диалоговое окно при открытии страницы, и я хотел бы показать его один раз для каждого пользователя. Вот код, но он не работает

<script type="text/javascript">
// <![CDATA[
$(document).ready(function(){
    $("#dialog").dialog({
        modal: true
    }); 
    $(function() {
        if ($.cookie('shownDialog') != 'true') {
            $('#dialog').dialog();
        }
        $.cookie('shownDialog', 'true', {expires: 7});
    });
    $("#close").click(function(event) {
        event.preventDefault();
        $(this).closest(":ui-dialog").dialog("close");
    });
});
// ]]>
</script>

Может кто-нибудь помочь мне исправить код?

1 Ответ

0 голосов
/ 22 апреля 2011

Полагаю, вы видите диалоговое окно всегда, а не один раз на пользователя.

$(document).ready(function(){
     $("#dialog").dialog({
                modal: true
}); 

В этой части диалоговое окно будет отображено немедленно, еще до того, как вы дойдете до проверки на показ.

Вы должны избавиться от него и переместить ваш модальный параметр в блок if:

<script type="text/javascript">
// <![CDATA[
$(document).ready(function(){
    $(function() {
          if ($.cookie('shownDialog') != 'true') {
              $("#dialog").dialog({
                    modal: true
               }); 
          }
          $.cookie('shownDialog', 'true', {expires: 7});
    });
    $("#close").click(function(event) {
      event.preventDefault();
      $(this).closest(":ui-dialog").dialog("close");
    });
});
// ]]>
</script>
...