2010-11-19 4 views
2

У меня есть диалоговое окно JQuery UI, которое автоматически открывается, когда пользователь приходит на мой сайт, чтобы мы могли показать диалог «В стадии разработки». Вот код для диалога:JQuery UI Dialog показывает «Dialog Div» перед отображением

var $dialog = $('#dialog'); 
if ($.cookie("MySitePreviewCookie") != "firstView") 
$(function() { 
    $.cookie("MySitePreviewCookie", "firstView", { expires: 180, path: '/' }); 
    // Show Dialog Div 
    $dialog.dialog({ 
    autoOpen: true, 
    resizable: false, 
    modal: true, 
    width: 600, 
    buttons: { 
     "Skip This": function() { 
     $(this).dialog("close"); 
     } 
    } 
    }); 
    }); 
else 
    $(function() { 
    // HIDE Dialog Div 
    $dialog.dialog({ 
    autoOpen: false, 
    resizable: false, 
    modal: true, 
    width: 600, 
    buttons: { 
     "Skip This": function() { 
     $(this).dialog("close"); 
     } 
    } 
    }); 
}); 

Вот диалог разметки:

<div id="dialog" title="Welcome to MySite" class="dialogStyles"> 
    <p> 
    Our site is still under construction but please look around and get a feel for what 
    we plan to offer. If you would like to sign-up for our newsletter, please enter 
    your email address below and click the <strong>Sign-up for Newsletter</strong> button. 
    </p> 
    <p class="validateTips"></p> 
    <br /> 
    <input type="text" id="ccEmailAddress" name="ccEmailAddress" class="required email" 
     style="width: 250px" /> 
    &nbsp; &nbsp;<input id="btnAddNewsletter" class="submit" type="submit" value="Sign- up for Newsletter" /> 
</div> 

Диалог отлично работает. У меня есть CSS для его стилизации, и это выглядит великолепно, за исключением того факта, что при первой загрузке страницы есть куча изображения, которое загружает страница, отображаемая за ней (домашняя страница). Он показывает (расположенную в самом низу страницы), а затем открывается диалоговое окно, и все хорошо. Как я могу заставить его перестать показывать DIV на странице и не влиять на диалог?

+0

Из любопытства, почему вы создаете диалоговое окно, если вы не собираетесь его показывать (я предполагаю, что вы хотите показать его только на первом представлении сайта)? Вам даже нужно это заявление 'else'? –

+0

Вы использовали 'style =" display: none "' – zod

+0

Для какой части div? –

ответ

1

На этот вопрос нет прямого ответа, поэтому для облегчения и, надеюсь, тех, кто просматривает ответ, подобный этому, это будет соответствовать вашей ситуации. Zod является правильным ... с помощью <style type="text/css"> .dialog {display:none}</style> будет препятствовать показу на ранней странице ввода или текста в диалоговом окне. Кроме того, использование «готового документа» должно помочь предотвратить показ документа, пока все, что должно быть загружено, будет готово.