Я пытался динамически включать / выключать соотношение сторон в JQueryUI с изменяемым размером, однако даже после установки для параметра значения false соотношение сторон сохраняется. Ниже приведен код, с которым я сейчас работаю:
$('#aspect_check').click( function() {
var ischecked = $('#aspect_check').prop('checked');
if (ischecked) {
$( "#resizable" ).resizable( "option", "aspectRatio", .75);
} else {
$( "#resizable" ).resizable( "option", "aspectRatio", false );
}
});
Я нашел отчет об ошибке 3-х летней давности, который, похоже, до сих пор не исправлен, несмотря на то, что он отмечен как критический. http://bugs.jqueryui.com/ticket/4186
Обходные пути не работают с последними версиями. Есть идеи?
Edit: После просмотра большого количества отчетов об ошибках, вот решение:
$(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"]));
});
Вставьте его в свой раздел сценария javascript. Надеюсь, это поможет кому-то с подобной проблемой!