jquery ui - 使对话更“动态”?

时间:2010-06-17 17:06:59

标签: javascript jquery

我有一个页面,它使用多个对话框来处理不同的事情。有些对话框可能有其他人没有的按钮,而其他对象可能需要与另一个高度不同......所有这些按钮都有一组不会改变的参数。我的问题,我可以有一个默认值:

$('.someElement').dialog({
   width: 999,
   show: 'slide',
   hide: 'slide',
   ETC: 'some other option' 
}); 

并将其用于我的所有对话框,然后在打开对话框时动态地将按钮或高度传递给它?对于我需要的每个对话框都有类似上面的内容似乎是错误的...

谢谢!

2 个答案:

答案 0 :(得分:5)

您可以为此创建一个包装函数:

function showDialog(target, options){
   options.width = 999;
   options.show = 'slide';
   options.hide = 'slide';

   $(target).dialog(options);
}

然后,您只需在创建对话框时调用该函数。你甚至可以把它变成幻想并把它变成一个jQuery插件,如果你真的想...

答案 1 :(得分:1)

你可以使用"option" method(它采用相同格式的对象),如下所示:

$('.someElement').dialog({
   width: 999,
   show: 'slide',
   hide: 'slide',
   autoOpen: false
}); 
$('.someElement').dialog('option', {
  buttons: { "Ok": function() { $(this).dialog("close"); } },
  height: 400
}).dialog('open');

You can see a demo here,这只是在调用open method之前设置了你想要的任何选项。