以编程方式关闭对话框
JQuery Mobile 1.4 Close dialog programmatically
由于JQM 1.4更改了一些小部件,为了使用"dialog"小部件,有两个选项:
- data-role = "页面" data-dialog = " true "
- data-rel = "弹出"
我使用第一种方法,所以当用户单击我的对话框的"确定"按钮时,我更新数据库,如果一切正常,我想关闭对话框。
正如JQM文档中提到的,我尝试过使用$( ".selector" ).dialog( "close" )
,但它抛出了Uncaught Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'
。一些示例代码:
对话框的HTML
<div id="manage-page" data-role="page" data-dialog="true" data-corners="false" data-close-btn="right" data-overlay-theme="b">
<div data-role="header">
<h1>Manage</h1>
</div>
<div data-role="content">
<h3>Title</h3>
<input type="text" id="title" value=""/>
<a href="#" id="saveTitle" data-role="button">Save</a>
</div>
</div>
对话框JS
$(document).on('click', '#saveTitle', function(){
var title= $('#title').val();
$.ajax({
type: "POST",
url: CUSTOM_URL,
success: function(data) {
if(data != -1)
$('#manage-page').dialog('close');
else
// Some stuff
},
error: function() {
console.log("ERROR saving title");
}
});
});
怎么了?由于
我已经解决了使用data-rel="back"
在我的打开按钮和删除$('#manage-page').dialog('close');
我重现了错误。您的对话框代码是可以的,但是您必须修改使用打开对话框的方式。你必须添加选项:
$.mobile.changePage(domain() + '/private/manageDialog', {role:"dialog"});
或者添加data-rel
属性:
<a href="#manage-page" data-rel="dialog">Open dialog</a>
相关文章:
- 着色引导框对话框
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- CKeditor:更改对话框中的默认选择选项
- 搜索api在mac上显示对话框
- 使用密码对话框Javascript请求帮助
- CKEditor v4:自制插件中对话框的动态标题
- 删除确认对话框在第一次单击时不起作用
- 显示具有 MVC 数据绑定视图模型 ASP.NET JQuery 对话框的最佳方式
- 如何以编程方式关闭 wordpress 中的 tinymce 对话框
- Jquery UI对话框的替代项或其他使用方式
- 引导模式对话框文本字段在我以编程方式更改值后不会更新,直到用户在该字段中键入
- jQuery Mobile:以编程方式打开一个对话框后关闭另一个
- 以编程方式关闭对话框
- 大小在jQuery UI对话框中以编程方式创建的iframe
- 在bootstrap或其他jquery对话框中显示各种信息的最佳方式
- 无法在JQuery Mobile中以编程方式显示对话框
- 在Chrome中以编程方式打开上传文件对话框
- 当在网站上单击按钮时,打开另存为对话框的正确方式是什么
- 使用“打开方式”对话框命名从 Canvas 保存的 PNG 文件
- 在JavaScript中,可以通过编程方式启动文件浏览器对话框