在上文中简单的介绍了下widget中的几个基本的方法,今天通过查资料算是明白了_create()和_init()方法的区别:
当widget被创建的时候,这两个方法都会被创建,而当页面再次调用widget方法的时候,则只执行_init方法,下面的代码将说明这些
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![ExpandedBlockStart.gif](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
$(
function
(){
// _create() 和 _init() 在第一次调用的时候被执行
$( " div " ).mywidget();
// widget已经实例化到div上了,此时只执行_init()方法
$( " div " ).mywidget();
// 销毁widget
$( " div " ).mywidget( " destroy " );
// 因为widget已经被销毁,此时_create()和_init()方法都将被执行
$( " div " ).mywidget();
});
// _create() 和 _init() 在第一次调用的时候被执行
$( " div " ).mywidget();
// widget已经实例化到div上了,此时只执行_init()方法
$( " div " ).mywidget();
// 销毁widget
$( " div " ).mywidget( " destroy " );
// 因为widget已经被销毁,此时_create()和_init()方法都将被执行
$( " div " ).mywidget();
});
对于destroy方法,在remove掉作用的元素的时候会被执行!所以在destroy的方法中必须将widget自己加的html结构删除掉。还原成应用widget前的状态!