要_destroy()还是要销毁()?

时间:2013-04-08 18:14:47

标签: javascript jquery jquery-ui jquery-ui-widget-factory

我对jQuery UI Widget中要实现的_destroydestroy方法感到有点困惑。

在此MSDN Widget Reference中,它表示要实施destroy(),但在此Tutorial Plus引用中,它表示要实施_destroy()

两个引用都说这些方法应该将元素返回到它的 pre-widget 状态。所以这部分我理解,但为什么在widget工厂中有这个方法的两个版本?

2 个答案:

答案 0 :(得分: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
}

});

答案 1 :(得分:1)

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

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