Подтвердить что ты не робот

Как открыть jQuery Mobile Dialog из javascript?

У меня есть страница диалога, и я пытаюсь открыть его и отображать результаты из AJAX POST.

Вот мое успешное событие jQuery:

success: function(resp) {                               
  $("#dialog").dialog();
  $("#text").html('SPAM and EGGS!')
}       

Мой HTML имеет две страницы, второй - диалог html:

<div data-role="page" id="main">
  # content 
</div>
<div data-role="page" id="dialog">
  <div data-role="header">
    <h1>Your Message</h1>
  </div>    
  <div data-role="content" id="text">
  </div>    
</div>

My AJAX POST работает, а элемент id = "текст" обновляется с помощью "SPAM и EGGS!", но диалог не появляется.

4b9b3361

Ответ 1

Добавьте тег <a> в любом месте вашей страницы, просто поместите свой идентификатор диалога как href, как показано ниже: <a id='lnkDialog' href="#dialog" data-rel="dialog" data-transition="pop" style='display:none;'></a>

И замените $("#dialog").dialog(); внутри вашего события успеха $("#lnkDialog").click();

Ответ 2

Я думаю, что это намного более элегантно:

$.mobile.changePage('#dialog', 'pop', true, true);

вы должны иметь в своем html data-role="dialog" вместо page

<div data-role="dialog" id="dialog">...</div>

Ответ 3

Этот ответ также работает:

    $.mobile.changePage('#myPage', {transition: 'pop', role: 'dialog'});   

Ответ 4

если не важно использовать "диалог" или "всплывающее окно", попробуйте следующее:

$("#dialog").popup('open');

Ответ 5

правильный вариант с последней версией запроса

$.mobile.changePage("#dialog", { transition: "pop",role: "dialog" })

Ответ 6

Начиная с JQM 1.4, changePage устарел и будет удален в 1.5 (http://api.jquerymobile.com/jQuery.mobile.changePage/)

Они предполагают, что вместо этого следует использовать метод change() pagecontainer.

$.mobile.pageContainer.pagecontainer("change", "#dialog", { transition: 'pop', role: "dialog" });