Содержание DIV показывает на странице вместо Диалогового окна JQuery

вам нужно нажать на apk (вероятно, при активном режиме разработчика, нажмите несколько раз на номер сборки в меню настроек)

11
задан Xaisoft 20 March 2009 в 20:25
поделиться

3 ответа

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

Причина, что DIV показывает, когда Вы сначала загрузка - то, потому что Вы еще не сказали это не. Сценарий jQuery, который заставляет DIV вести себя как диалоговое окно, не работает, пока DOM HTML не загружается, и до тех пор это не скроет DIV. Простое решение состоит в том, чтобы скрыть DIV значением по умолчанию с помощью CSS.

<div id="dialog" title="Membership Renewal" style="display:none;">
Your membership is going to expire.
</div>

Проблема нажатия кнопки связана: RegisterClientScriptBlock произведет сценарий, который работает, как только с ним встречаются, таким образом, код jQuery, который превращает его в диалоговое окно, не имел шанса работать все же. Чтобы дать ему шанс сделать так, можно изменить код C# для использования RegisterStartupScript, который задержит выполнение showjQueryDialog() пока страница не закончила загружаться, и код jQuery имел шанс превратить DIV в диалоговое окно.

if (timeSpan.Days >= 30)
{
  //Show JQuery Dialog Here
    ScriptManager.RegisterStartupScript(this, typeof(Page), 
        "showExpiration", "showjQueryDialog()", true);
}
16
ответ дан 3 December 2019 в 02:02
поделиться

удостоверьтесь, что Вы указываете корректный doctype наверху своей страницы, это, кажется, причина некоторых проблем, которые я видел.

править:

также, помешать ему высвечивать вначале Вас может иметь что-то как

#debug { display: none; }

где-нибудь перед элементом (скорее всего, Ваша таблица стилей или в голове).

другая вещь, которая могла бы помочь, состоит в том при помещении набора:

OnClientClick="showjQueryDialog(); return false;";

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

0
ответ дан 3 December 2019 в 02:02
поделиться

Причина не показ состоит в том, потому что документ, вероятно, еще не загрузился. и document.ready не назвали, таким образом ("открытое") диалоговое окно становится названным перед диалоговым окном ({опции}); таким образом для фиксации этого просто добавляют код к в вызове doc.ready.

Кроме того, Ваша единственная загрузка диалогового окна однажды, таким образом, Вы не должны действительно инициализировать его как autoOpen:false, использует display:none, затем показывают его, как сказал John Boker

function showjQueryDialog() {
  $(document).ready(function() {
    $("#dialog").dialog({
        modal: true,
        buttons: { "Renew Membership": function() { $(this).dialog("close"); } });
    $("#dialog").show();  // sets display:block;
    //alert("Time to renew Membership!");
  });
}

<div id="dialog" style="display:none">
  <!--..-->
</div>
0
ответ дан 3 December 2019 в 02:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: