サイズ変更可能な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 スクリプト セクションに貼り付けます。同様の問題を抱えている人に役立つことを願っています!