在使用jQuery UI 的resizable中遇到这样的问题:加上参数aspectRatio: true,所有方向都按比例缩放。$("#conbox .controls").resizable({
    aspectRatio: true,
    handles: "all"
});但是现在我想水平方向和垂直方向的缩放不限制比例,但对角线方向的缩放却要按比例缩放,这个能不能实现?
另外:其实我是想到一个解决的方法,就是先不要加上aspectRatio: true$("#conbox .controls").resizable({
    handles: "all"
});然后判断如果触发缩放程序的是四个顶点方向的话,就用option设置aspectRatio的值:$("#conbox .controls").resizable('option', 'aspectRatio', true);但之后发现设置aspectRatio的值没有效果,于是把aspectRatio的值alert出来,发现已经改为true,但就是没有产生效果???但我设置其他参数如 maxHeight、minHeight、delay等都有效果,不知为何?
谁有遇到这样的问题吗?求解决方法~~jQuery UIjQueryresizable缩放aspectRatio

解决方案 »

  1.   

    唉,终于解决了!!这问题困扰了两天,终于在国外的网站上找到解决方法。aspectRatio初始化后再用option来设置其值不能产生效果是jQuery UI 本身的问题,在国外的网站上找到一段代码终于能解决这个问题,下面贴上代码:(function() {
        var oldSetOption = $.ui.resizable.prototype._setOption;
        $.ui.resizable.prototype._setOption = function(key, value) {
            oldSetOption.apply(this, arguments);
            if (key === "aspectRatio") {
                this._aspectRatio = !!value;
            }
        };
    })();希望能帮到遇到相同问题的朋友终于实现想要的效果,结贴收工!!!