2

jQuery UI ウィジェットのどのメソッド_destroyまたはメソッドを実装するかについて、少し混乱しています。destroy

このMSDN Widget Referenceでは実装するように書かれていますdestroy()が、このTutorial Plusリファレンスでは実装するように書かれています_destroy()

どちらの参照も、これらのメソッドは要素をウィジェット前の状態に戻す必要があると述べています。その部分は理解できましたが、ウィジェット ファクトリにこのメソッドの 2 つのバージョンがあるのはなぜですか?

4

2 に答える 2

2

MSDN ではなく、jQuery UI からドキュメントを読む

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 では (public)destroyメソッドを定義すべきではありません。_destroy代わりに定義します。その中で、ベース コール デストラクタを呼び出す必要はありません。

于 2014-06-18T14:29:40.887 に答える