我试图在可调整大小的 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 脚本部分。希望它可以帮助有类似问题的人!