jquery小部件,_create或_init

Gel*_*Luo 8 jquery construction jquery-ui widget

一些jquery插件扩展小部件使用_create方法,而其他人使用_init方法,有人可以解释两者之间的差异吗?

关于何时扩展小部件或直接扩展jquery.fn的任何指导?

Mot*_*tie 18

来自jQuery UI开发人员指南:

创建元素后,对第一个参数不是字符串的窗口小部件名称的所有其他调用将调用_init()方法; 如果传递选项,则会在_init()方法之前调用.option()方法


Ken*_*ing 5

扩展小部件(而不是$ .fn)的缺点是你在jquery-ui上创建了一个依赖,它定义了小部件"class".对于不使用jquery-ui的插件用户来说,这种依赖可能会很昂贵.

至于_create vs _init,我很确定_init是第一个,然后在最近的修订中他们引入并支持_create.我可能错了,但我相信_init仍然受到支持.如果是,那么两者之间应该没有任何差异.

  • _init和_create之间有不同._create只被调用一次.从@fudgey中提到_init将被多次调用 (4认同)
  • 您可以删除小部件代码并将其包含在.js文件中.有人谈到将小部件移动到jquery本身而不是jqueryui,但我不知道是否已经针对特定版本或者尚未确定. (3认同)