jQuery小部件,_Create或_init
-
09-10-2019 - |
题
一些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
方法。因此,这可以用来 重置 (重新初始化)小部件或传递不同的选项。
有关每个阶段的更多详细信息 这里.
不隶属于 StackOverflow