2013-02-20 2 views
0

Я пытаюсь показать окно мода css, которое должно появиться для пользователя, если он имеет почту в своем почтовом ящике, при загрузке страницы. Я до сих пор работаю над ссылкой <a href="#" id="mail_modal"></a>, но я не уверен, как сделать это автоматически при загрузке страницы. Это мой код:Отображение div автоматически при загрузке страницы

<?php 
if ($items > 0) 
    { 
     echo '<strong><font color="yellow">You have new unread mail</font></strong>'; 
    ?> 

    <script type="text/javascript"> 
    $(document).ready(function() { 
    $('#button_modal').click(function(e) { 
      $('#modal').reveal({ 
       animation: 'fadeAndPop', 
       animationspeed: 400, 
       closeonbackgroundclick: true, 
       dismissmodalclass: 'close' 
      }); 
     return false; 
     }); 
    }); 
    </script> 

    <div id="modal"> 

     <div id="mail-form"> 

      <h1>New Mail</h1> 

      <fieldset> 

       <form name="loginform" action="<?php echo url('/Mail');?>"> 

        <p>You have new unread mail in your inbox. Press 'Mail' button to access your inbox.</p> 

        <input type="hidden" name="redir" value="<?php echo url('/Mail'); ?>" /> 
        <input type="hidden" name="action" value="mail" /> 
        <input type="submit" name="submit" value="Mail" /> 

       </form> 

      </fieldset> 

     </div> <!-- end login-form --> 

    </div> 

    <?php 
    } 
    else 
    { 
     echo '<i>You have no new mail</i>'; 
    } 
?> 

ответ

1
<script type="text/javascript"> 
$(document).ready(function() { 
    $('#button_modal').click(function(e) { 
    $('#modal').reveal({ 
     animation: 'fadeAndPop', 
     animationspeed: 400, 
     closeonbackgroundclick: true, 
     dismissmodalclass: 'close' 
    }); 
    return false; 
    }); 

    // and here we show popup automatically, if a user has new letters. 
    <?php if ($items > 0) echo "$('#button_modal').trigger('click');"; ?> 

}); 
</script> 
+0

Это работает, спасибо, но есть проблема, потому что вы можете ' t выйти из него. Я думаю, что вся страница в основном становится ссылкой '/ Mail'. Я думаю, что я могу сбросить '$ items' до' 0', но как я могу это сделать при отправке? – zzwyb89

+0

Обычно должен быть метод, закрывающий всплывающее окно, например: ('#modal'). Show ('close') ;. Вы можете проверить документацию? – Webars

+0

Это не выглядит печально. По-видимому, это закрывает всплывающее окно: 'closeonbackgroundclick: true'. У модала также был промежуток, который закрыл его, но я не хотел его там. Ваш первый код, однако, работал, мне просто интересно, было ли хорошей практикой устанавливать '$ items = 0' при отправке? – zzwyb89

0
$(document).ready(function() { 
    if(/* check if has mail */ === true) { 
     $('#modal').reveal({ 
      animation: 'fadeAndPop', 
      animationspeed: 400, 
      closeonbackgroundclick: true, 
      dismissmodalclass: 'close' 
     }); 
    } 
}); 
+0

Будет ли это автоматически появляться на странице загрузки? – zzwyb89

+0

Когда документ готов (это означает, что страница загружена), код внутри блока выполняется, что означает, что он покажет модальный. –

+0

Может также вставляться в инструкцию '' 'PHP, а не включать оператор' if' в JS. –

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