Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery小部件,\u创建或\u初始化_Jquery_Jquery Ui_Widget_Construction - Fatal编程技术网

jquery小部件,\u创建或\u初始化

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插件扩展小部件使用_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所提到的,幸运的是,链接现在已经被删除了。或