我使用jQuery UI Resizable模块,并且在初始化后尝试传递选项时,它似乎没有反应。

因此,如果我初始化元素:

$('.blabla').resizable();


然后尝试添加选项:

$('.blabla').resizable("option","aspectRatio",true);


没发生什么事。通过逐项检查,我发现其中一些可以正常工作,而有些却无法工作……这是什么问题?当然,'aspectRatio'不起作用,'ghost'有效。

这是简单的jsfiddle:
http://jsfiddle.net/k8gY8/1/

最佳答案

似乎是一个已知问题:http://bugs.jqueryui.com/ticket/4186

因此,按照建议,您可以覆盖原型mouseStart事件:

$(function () {
    $.extend($.ui.resizable.prototype, (function (orig) {
        return {
            _mouseStart: function (event) {
                this._aspectRatio = !! (this.options.aspectRatio);
                return (orig.call(this, event));
            }
        };
    })($.ui.resizable.prototype["_mouseStart"]));
});


在您的代码和il的顶部。

演示:http://jsfiddle.net/ajYgM/

10-07 12:39