私のアプローチは、サイズ変更可能なウィジェットを拡張し、その _destroy メソッドをオーバーライドすることです。元の _destroy メソッドを拡張ウィジェットにコピーして置き換えます
find(".ui-resizable-handle")
と
children(".ui-resizable-handle")
コード全体を以下に示します。
$.widget( "ui.customResizable", $.ui.resizable, {
_destroy: function() {
this._mouseDestroy();
var wrapper,
_destroy = function(exp) {
$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing")
//The only place you need to change is replace find with children.
.removeData("resizable").removeData("ui-resizable").unbind(".resizable").children(".ui-resizable-handle").remove();
};
//TODO: Unwrap at same DOM position
if (this.elementIsWrapper) {
_destroy(this.element);
wrapper = this.element;
this.originalElement.css({
position: wrapper.css("position"),
width: wrapper.outerWidth(),
height: wrapper.outerHeight(),
top: wrapper.css("top"),
left: wrapper.css("left")
}).insertAfter( wrapper );
wrapper.remove();
}
this.originalElement.css("resize", this.originalResizeStyle);
_destroy(this.originalElement);
return this;
}
} );
元のサイズ変更可能なウィジェットではなく、拡張ウィジェットを使用するよりも。
$("#outer").customResizable();
$("#inner").customResizable();
$("#outer").customResizable("destroy");