嗨,新年快乐,
有一个JQM对话框,通过AJAX调用打开这样的对话
$('#calendar-event-form-container').html(HTML).toggle();
$("#calendar-event-form-container").dialog({theme:'a'});
并以
结束$("#calendar-event-form-container").dialog('close');
$("#calendar-event-form-container").toggle();
下次打开对话框时,它会丢失其JQM主题和位置。
有人能看到代码出错的地方吗?
提前致谢 此致 巴巴克
答案 0 :(得分:1)
显示和隐藏表单作为toggle()
的对话框是非标准的。 jQuery Mobile对话框旨在显示或隐藏页面<div data-role="page">
容器。因此,假设它在当前页面之外,并且在显示为对话框之前将不可见。
http://jquerymobile.com/demos/1.2.0/docs/pages/dialog/index.html
“通过将data-rel="dialog"
属性添加到页面锚点链接”,可以将任何页面显示为模式对话框“
答案 1 :(得分:1)
andleer是正确的,不要在jQM中使用toggle(),不需要。创建jQM对话框以用作分离页面。看一下这个例子:
<div data-role="page" id="index">
<div data-theme="a" data-role="header">
<h3>
First Page
</h3>
<a href="#second" class="ui-btn-right">Next</a>
</div>
<div data-role="content">
<a href="#" data-role="button" id="open-button">Open dialo</a>
</div>
<div data-theme="a" data-role="footer" data-position="fixed">
</div>
</div>
<!-- DIALOG BOX -->
<div data-role="page" id="dialog-box" data-theme="b">
<div data-role="header">
<h1>Warning</h1>
</div>
<div data-role="content">
<h3 id="dialog-msg">
Dialog test
</h3>
<a href="#" data-role="button" id="close-button">
Close dialog
</a>
</div>
</div>
如果可能的话,你应该打开如下对话框:
$.mobile.changePage('#dialog-box', {transition: 'pop', role: 'dialog'});
如果您正在动态更改对话框内容,则必须在其上触发pagecreate才能正确重新设置:
$('#dialog-box').trigger("pagecreate");
这是一个完整的jsFiddle示例:http://jsfiddle.net/Gajotres/fXzWj/