2011-06-06 2 views
7

Я впрыснуть HTML для диалога с помощью сценария, как:Как программно открыть диалог в jQuery mobile alpha 4?

$("#misc-cntr").append('<div id="chk" data-rel="dialog" > </div>'); 

затем в Ajax обратного вызова успеха у меня есть:

success: function(msg) { 
$('#chk').html(msg) 
// open dialog here 
// $('#chk').dialog('open') does not work 
} 

Учитывая вышеизложенное, как я могу открыть диалоговое окно программно?

ответ

10

Вам нужно изменить страницу к ней, что-то вдоль линий:

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

Если вы хотите, чтобы закрыть диалоговое окно с помощью JavaScript, вам необходимо:

$('#chk').dialog('close'); 

Надеюсь это поможет.

+1

Ваш совет помог сделать диалог показать вверх, но диалоговое окно всплывает и появляется на долю секунды, а затем исчезает. Не уверен, что вызывает эту проблему. – ace

+0

Можете ли вы опубликовать немного больше своего кода или, что еще лучше, вставить его в JSFiddle, чтобы мы могли видеть, что происходит? –

2

Вот что я использовал. Это очень грязно, но вместо всплывающей страницы используется фактическое диалоговое окно.

DIV:

<div data-role="page" id="score" data-theme="d" data-transition="pop" /> 

JQuery Код:

var a = $('<a />').attr({ 
    href: '#score', 
    "data-rel": 'dialog' 
}).click(); 
1

Функция changePage принимает объект в качестве второго аргумента. В нем вы можете указать вещи как роль и переход. Для вашего случая вам нужно установить роль в «диалог».

0
$.mobile.changePage($('#mydialog'),{'transition':'pop'}); 

ИЛИ

$.mobile.changePage($('#mydialog'),'pop'); 
Смежные вопросы