【发布时间】:2013-08-16 12:06:08
【问题描述】:
jquery-ui 对话框小部件(就像所有其他小部件一样)被包装在一个匿名函数中。
在这个函数内部有一个声明为sizeRelatedOptions的变量。我需要从包装闭包外部向该对象添加一个键。实现这一目标的最佳方法是什么?
(function( $, undefined ) {
var sizeRelatedOptions = {
buttons: true,
height: true,
//etc
}
$.widget( "ui.dialog", {
//widget code
});
}( jQuery ) );
编辑#1:上面的代码是jQuery ui的source code
编辑#2:我现在明白我不能简单地访问该变量。所以我必须解决这个问题。因此,这里有一些关于我为什么需要这个的更多信息:
我正在扩展 jQuery ui 的对话框小部件以添加另一个 buttonPane。为了在将窗格添加到小部件后使小部件自行调整大小,我想向sizeRelatedOption 添加一个选项。 (这就是这个问题首先要解决的问题。)因为对话框小部件的_options 函数会检查sizeRelatedOption 中是否存在该选项作为键。在这种情况下,它会调用 _size 函数来调整小部件的大小。
希望我能说清楚一点。
【问题讨论】:
-
不能在全局范围内声明变量吗?
-
@JeevanJose 我想修改 jquery 的源代码不是一个好主意!
-
sizeRelatedOptions 来自 jQuery 的源码??
-
@JeevanJose 是的。我已经添加了指向源代码的链接。
-
每个人似乎都忘记了 OP 不拥有小部件的代码,它是 jQuery UI 库的一部分。修改库的源代码是一种非常糟糕的做法,会导致维护噩梦,因此这里唯一可行的答案是您无法实现这一点。
标签: javascript jquery jquery-ui