我的方法是扩展可调整大小的小部件,并覆盖其 _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");