如何在jQuery UI小部件中的_init和_ create之间做出决定?
-
14-10-2019 - |
题
我想我了解 _create
和 _init
在小部件定义中(例如 这个问题),但我仍然不确定 目的 为了区分。哪种设置任务进入 _create()
或IN _init()
?如果小部件作者选择了错误的人,怎么了?
解决方案
从:
- http://forum.jquery.com/topic/jquery-ui-1-8-us-of-init
- http://www.erichynds.com/jquery/tips-for-developing-jquery-ui-widgets/
- http://jqueryui.com/demos/dialog/
利用
_create
构建和注入标记,绑定事件等。将默认功能放在_init()
。例如,对话框小部件提供了一个autoOpen
参数表示对话框初始化后应打开对话框;一个理想的地方_init()
!
还:
小部件工厂自动发射
_create()
和_init()
初始化期间的方法,按照该顺序。乍一看,这项工作似乎是重复的,但是两者之间存在视线差异。因为小部件工厂可以防止同一元素上的多个实例化,所以_create()
每个小部件实例将最多称为一次_init()
每当小部件被调用时,都会被称为无参数...
如果作者使用 _init()
什么时候 _create()
应该已经编码了,结果将是 _init()
每个小部件实例化将执行一次。
其他提示
简短的答案 这里:_create()首次运行jQuery-ui插件时将执行,例如$ xx.your-plugin(您的选项); _init()将执行 第一次和第一次之后 当您的代码运行到$ xx. your-plugin(您的选项)时;
因为这样的jquery-ui.custom.js中有一些代码:
var instance = $.data( this, fullName );
if ( instance ) {
instance.option( options || {} )._init();
}
所以,如果你 绘制图表 使用jQuery-UI插件,将其抽出后,然后您要 使用新数据对其进行更新, ,您需要在_init()中执行此操作以更新图表。如果您只是显示一些内容并且不会完全更新它们,则_Create()将满足您的需求。
不隶属于 StackOverflow