我希望增加我对jquery-ui的认识,所以我看一下他们的源代码。
我使用jquery-ui 1.19m5。
当我看到ui-dialog的1.19m5源代码时,我在调用widget工具后看到了:
$.extend($.ui.dialog, {
...
getTitleId: function($el) {
...
我不明白这一点。为什么他们不将getTitleID
方法直接放入原型文字(使用小部件工厂调用的第3个参数)?
答案 0 :(得分:0)
jQuery UI旨在从适当的小部件API触发方法。因此,要调用方法,您可以执行$('.selector').widgetName('methodName',arguments);
这允许插件开发人员轻松添加私有/公共函数,以及避免命名空间冲突。可以有一个可调整大小,可拖动和可丢弃的对象......这三个插件共享一些方法名称,例如启用/禁用功能。
在这个例子中,如果他们在'enable'下将它添加到原型中,这只允许你启用/禁用你添加的最后一个widget的功能,这使得无法控制所有的widget类型。使用他们的API,您可以专门选择要修改的小部件。防爆。 $('.selector').draggable('disable');
将禁用拖动功能,并使可调整大小和可放置的小部件完全正常运行。请记住,许多小部件具有相同或相似的方法,事件和/或选项名称。
长短,用于命名空间。这也使开发人员更容易,因为他只需要在编写自己的小部件时担心顶级窗口小部件名称,而不必担心直接添加到原型中的其他方法,选项,数据等。 / p>
他们可能会在第二层下将它添加到原型中,但这并不能真正为您(用户)节省任何时间,并且可能在代码中看起来不那么清晰。或者他们可以为每个单独的函数添加一个前缀以指定命名空间,但这会使代码混乱,并为开发人员创建自己的小部件创建更多检查和潜在的失败点。