对于要在 jQuery UI Widget 中实现哪个_destroy
或方法,我有点困惑。destroy
在这个MSDN Widget Reference中它说要实现destroy()
,但在这个Tutorial Plus参考中它说要实现_destroy()
。
两个参考资料都说这些方法应该将元素返回到它的小部件前状态。所以那部分我明白了,但是为什么小部件工厂中有这个方法的两个版本呢?
对于要在 jQuery UI Widget 中实现哪个_destroy
或方法,我有点困惑。destroy
在这个MSDN Widget Reference中它说要实现destroy()
,但在这个Tutorial Plus参考中它说要实现_destroy()
。
两个参考资料都说这些方法应该将元素返回到它的小部件前状态。所以那部分我明白了,但是为什么小部件工厂中有这个方法的两个版本呢?
从 jQuery UI 而不是 MSDN 上阅读文档
http://wiki.jqueryui.com/w/page/12138135/Widget%20factory
// Use the destroy method to clean up any modifications your widget has made to the DOM
destroy: function() {
// In jQuery UI 1.8, you must invoke the destroy method from the base widget
$.Widget.prototype.destroy.call( this );
// In jQuery UI 1.9 and above, you would define _destroy instead of destroy and not call the base method
}
});
只是为了澄清(并基于此):
在 jQuery UI 1.8 中,您的小部件应如下所示:
$.widget( "demo.widget", {
destroy: function() {
// Invoke the base destroy method
$.Widget.prototype.destroy.call( this );
// Perform widget-specific cleanup
...
}
});
在 jQuery UI 1.9 中,像这样:
$.widget( "demo.widget", {
_destroy: function() {
// Perform widget-specific cleanup
...
}
});
也就是说,在 1.9 中,您不应该定义(公共)destroy
方法;_destroy
改为定义;并且在其中不需要调用基本调用析构函数。