如果我想创建一个JQuery UI对话框,我会使用类似的东西:
var settings = {autoOpen:false, draggable:false, and so on...};
var dialog = $("#container").dialog(settings);
但现在我想知道如何检索如上所示的对话框设置,例如
dialog.getSettings();
我需要它,因为我有一个使用许多具有默认行为的对话框的应用程序。像
这样的东西function doAfterSubmit(dialogSettings) {
// some code
}
var dialogSettings = {
user:{
add:{
title:"Add user",
buttons:{
"Add":function() {
var settings = $(this).getSettings(); // The answer goes here
// AJAX to send some content
doAfterSubmit(settings);
}
},
otherProperties
},
remove:{
title:"Remove user",
buttons:{
"Remove":function() {
var settings = $(this).getSettings(); // The answer goes here
// AJAX to send some content
doAfterSubmit(settings);
}
},
otherProperties
},
removeAll:{
title:"Remove all user",
buttons:{
"Remove all":function() {
var settings = $(this).getSettings(); // The answer goes here
// AJAX to send some content
doAfterSubmit(settings);
}
},
otherProperties
}
}
}
在看到JQuery UI对话框源后,我注意到一个名为 defaults 的属性,其中包含对话框组件的所有属性。但是我怎样才能获得默认属性?
的问候,
答案 0 :(得分:7)
dialog.dialog('option', 'name_of_option');
那应该返回该对话框的选项。
您可以做的是保留名称列表并循环遍历它们以重建设置数组。为什么你需要返回所有选项?
答案 1 :(得分:4)
你可以使用
var obj = $(selector).dialog("option");
“obj”包含所有对话框选项,作为普通的JAVASCRIPT对象。
在某个事件中(例如“开放”),您可以使用
var obj = $(this).dialog("option");
我正在使用jQuery UI 1.8.16(最新版)。适合我的作品。希望它有所帮助。
答案 2 :(得分:3)
// Get or set any dialog option. If no value is specified, will act as a getter.
.dialog( 'option' , optionName , [value] );
答案 3 :(得分:1)
尝试dialog.options
,虽然我很想知道您为什么要查看它们(这可能会改变答案)。
答案 4 :(得分:1)
使用你的代码示例,你应该做这样的事情......
var optionValue = dialog.dialog('option' , optionName);
其中optionName类似于'height','position','resizable'等。
编辑: 看到你添加到其他答案的评论后,听起来你需要一个提供所需功能的辅助方法(它可能应该作为主插件的一部分提供)
为每个选项简单地调用.dialog('option',xxxx)的东西,并将它们全部放在一个关联数组中。 不过我还是不禁想到,即使你可以使用这个阵列,你也可以回到阵列中拉出一个选项,而不是直接从对话框中拉出它。或者您打算使用数组从?
创建第二个对话框答案 5 :(得分:0)
正如Daniel指出的那样,你可以循环遍历变量'settings',并为getSettings()构建你自己的对象。