Я пытался динамически включать / выключать пропорции в 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
Временные решения не работают с последними версиями. Есть идеи?
Редактировать: После просмотра большого количества сообщений об ошибках, вот обходной путь:
$(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. Надеюсь, это поможет кому-то с подобной проблемой!