jquery小部件,\u创建或\u初始化
一些jquery插件扩展小部件使用_create方法,而另一些使用_init方法,有人能解释这两者之间的区别吗jquery小部件,\u创建或\u初始化,jquery,jquery-ui,widget,construction,Jquery,Jquery Ui,Widget,Construction,一些jquery插件扩展小部件使用_create方法,而另一些使用_init方法,有人能解释这两者之间的区别吗 另外,关于何时最好扩展小部件或直接扩展jquery.fn的任何指导意见?扩展小部件(而不是$.fn)的缺点是,您在定义小部件“类”的jquery ui上创建了一个依赖项。对于不使用jquery ui的插件用户来说,这种依赖性可能会很昂贵 就_createvs _init而言,我很确定_init首先出现,然后在最近的一次修订中,他们引入并支持_create。我可能错了,但我相信_init
另外,关于何时最好扩展小部件或直接扩展jquery.fn的任何指导意见?扩展小部件(而不是$.fn)的缺点是,您在定义小部件“类”的jquery ui上创建了一个依赖项。对于不使用jquery ui的插件用户来说,这种依赖性可能会很昂贵 就_createvs _init而言,我很确定_init首先出现,然后在最近的一次修订中,他们引入并支持_create。我可能错了,但我相信_init仍然受到支持。如果是,则两者之间不应存在任何差异。来自: 创建元素后,如果第一个参数不是字符串,则对小部件名称的所有其他调用都将调用_init()方法;如果传递了选项,则将在_init()方法之前调用.option()方法
小部件有三个阶段:
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
| 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. |
+-------+----------------+---------------+--------------------------------------------------------------------------------------------+
注意:按惯例,以下划线开头的方法名是私有的
因此,
\u create
和\u init
之间存在差异。一个用于创建,另一个用于初始化。每次您在没有参数或选项的情况下调用小部件时,它都会间接调用\u init
方法。因此,这可用于重置(重新初始化)小部件或向其传递不同的选项
关于每个阶段的更多详细信息。小部件上的要点很好。如果我不想给jqueryui引入额外的依赖项,您是否有任何widget的替代品?您可以删除widget代码并将其包含在您的.js文件中。有人说要将widget移动到jquery本身而不是jqueryui中,但我不知道这是否已经被安排在特定的版本中。init和create之间有一个不同之处_create只调用一次_init将被多次调用,正如@fudgeyun所提到的,幸运的是,链接现在已经被删除了。或