2

对于要在 jQuery UI Widget 中实现哪个_destroy或方法,我有点困惑。destroy

在这个MSDN Widget Reference中它说要实现destroy(),但在这个Tutorial Plus参考中它说要实现_destroy()

两个参考资料都说这些方法应该将元素返回到它的小部件前状态。所以那部分我明白了,但是为什么小部件工厂中有这个方法的两个版本呢?

4

2 回答 2

2

从 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
}

});

于 2013-04-08T18:18:23.223 回答
1

只是为了澄清(并基于):

在 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改为定义;并且在其中不需要调用基本调用析构函数。

于 2014-06-18T14:29:40.887 回答