27-讨论
14.5.3 讨论
如果你只想改进可读性,可以简单地将选项放入一个变量中,将其传递给插件的 init 方法:
var options = {
height: 300,
width: 400,
draggable: false,
modal: true,
buttons: {
'OK': function(event, ui) {
$(this).dialog('close');
}
}
};
$('#msg').dialog(options);
但是本秘诀不仅是关于可读性和代码美学的,还与修改不是由你编写的插件的默认行为有关。而且,这里介绍的方法可以让你回到简单的无选项 init :
$('#msg').dialog();
正如Dave Methvin的名言“除非读懂你的想法,否则就无法得到更简洁的。”
当然,你可以像前一个秘诀里那样向插件的 init 方法传递自定义选项,覆盖这些自定义默认选项。
不要忘记,插件选项是在 init 的时候从默认值中复制和扩展的。所以,在 <div> 已经初始化为对话框后扩展 $.ui.dialog.defaults 对该对话框没有影响,即使 init 没有使用自定义选项也一样。这种扩展只对默认值覆盖之后初始化的对话框有效。