一些jQuery插件扩展了窗口小部件使用_CREATE方法,而另一些方法则使用_init方法,有人可以解释两者之间的差异吗?

还有关于何时更好地扩展小部件或直接扩展jQuery.fn的指导吗?

有帮助吗?

解决方案

扩展小部件的缺点(而不是$ .fn)是您对jQuery-ui创建了定义窗口小部件“类”的依赖性。对于不使用JQuery-UI的插件用户来说,这种依赖性可能很昂贵。

就_ Create vs _init而言,我很确定_Init是第一位的,然后在最近的修订中,他们介绍并喜欢_Create。我可能对此错了,但我相信_init仍然得到支持。如果有的话,两者之间就不会有任何区别。

其他提示

来自 JQuery UI开发人员指南:

创建元素后,所有其他呼叫的窗口名称,其中第一个参数不是字符串将调用_init()方法;如果通过选项,则将.option()方法在_init()方法之前调用

小部件有三个阶段:

+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| Phase | Name           | jQuery Method | Description                                         |  
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
|     1 | Creation       | _create       | First time the widget is applied to an element, it is called.                              |  
|     2 | Initialization | _int          | The _init method is called after _create when the widget is first applied to its elements. |  
|     3 | Destruction    | destroy       | The widget's destroy method is used to detach a widget from an element.                    |  
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+

笔记: :以下划线开头的方法名称是按照惯例为私人的。


因此,有区别 _create_init. 。一个用于创建,另一个用于初始化。每次您致电小部件没有参数或选项时,它都会间接致电 _init 方法。因此,这可以用来 重置 (重新初始化)小部件或传递不同的选项。

有关每个阶段的更多详细信息 这里.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top