ui-dialog,getTitleId方法不在原型文字中,为什么?

时间:2011-07-11 06:19:59

标签: jquery-ui jquery-ui-dialog

我希望增加我对jquery-ui的认识,所以我看一下他们的源代码。

我使用jquery-ui 1.19m5。

当我看到ui-dialog的1.19m5源代码时,我在调用widget工具后看到了:

$.extend($.ui.dialog, {
 ...
   getTitleId: function($el) {
 ...

我不明白这一点。为什么他们不将getTitleID方法直接放入原型文字(使用小部件工厂调用的第3个参数)?

1 个答案:

答案 0 :(得分:0)

jQuery UI旨在从适当的小部件API触发方法。因此,要调用方法,您可以执行$('.selector').widgetName('methodName',arguments);

这允许插件开发人员轻松添加私有/公共函数,以及避免命名空间冲突。可以有一个可调整大小,可拖动和可丢弃的对象......这三个插件共享一些方法名称,例如启用/禁用功能。

在这个例子中,如果他们在'enable'下将它添加到原型中,这只允许你启用/禁用你添加的最后一个widget的功能,这使得无法控制所有的widget类型。使用他们的API,您可以专门选择要修改的小部件。防爆。 $('.selector').draggable('disable');将禁用拖动功能,并使可调整大小和可放置的小部件完全正常运行。请记住,许多小部件具有相同或相似的方法,事件和/或选项名称。

长短,用于命名空间。这也使开发人员更容易,因为他只需要在编写自己的小部件时担心顶级窗口小部件名称,而不必担心直接添加到原型中的其他方法,选项,数据等。 / p>

他们可能会在第二层下将它添加到原型中,但这并不能真正为您(用户)节省任何时间,并且可能在代码中看起来不那么清晰。或者他们可以为每个单独的函数添加一个前缀以指定命名空间,但这会使代码混乱,并为开发人员创建自己的小部件创建更多检查和潜在的失败点。