it-swarm.com.ru

Как открыть 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>

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

37
Will Curran

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

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

54
codef0rmer

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

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

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

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

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

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

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

$("#dialog").popup('open');
20
Ahmet Mehmet

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

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

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

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

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