解决 jQuery.UI.Resizable aspectRatio在init后无法重新设置

一、背景

在jQuery1.9.x版本之前,存在aspectRatio在Resizable方法init之后,无法再次修改aspectRatio的boolean值。

二、解决方案

// 用于fix jQueryUI resizable bug:aspectRatio参数设置
(function($) {
    var oldSetOption = $.ui.resizable.prototype._setOption;
    $.ui.resizable.prototype._setOption = function(key, value) {
        oldSetOption.apply(this, arguments);
        if (key === "aspectRatio") {
            this._aspectRatio = !!value;
        }
    };
})(jQuery);

将上面的修复js放入jQuery UI源文件里面即可。

三、官方解答文档

传送门:jQuery官方解答

原文入口:http://www.jianshu.com/p/f876b99146c5