Tôi đã cố gắng bật/tắt tỷ lệ khung hình một cách linh hoạt trong JQueryUI có thể thay đổi kích thước, tuy nhiên, ngay cả sau khi đặt tùy chọn thành false, nó vẫn duy trì tỷ lệ khung hình. Dưới đây là mã tôi hiện đang làm việc với:Không thể áp dụng JqueryUI Resizable AspectRatio sau khi khởi tạo?
$('#aspect_check').click(function() {
var ischecked = $('#aspect_check').prop('checked');
if (ischecked) {
$("#resizable").resizable("option", "aspectRatio", .75);
} else {
$("#resizable").resizable("option", "aspectRatio", false);
}
});
Tôi đã tìm thấy báo cáo lỗi từ 3 năm trước, có vẻ như nó vẫn chưa được khắc phục mặc dù đánh dấu là quan trọng. http://bugs.jqueryui.com/ticket/4186
Cách giải quyết không hoạt động với các phiên bản mới nhất. Ý tưởng nào?
Edit: Sau khi trải qua rất nhiều báo cáo lỗi, đây là một công trình xung quanh:
$(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"]));
});
Dán nó trong phần kịch bản javascript của bạn. Hy vọng nó sẽ giúp ai đó với vấn đề tương tự!
chỉnh sửa công trình của bạn! Cảm ơn – willDaBeast
Cách giải quyết chỉ hoạt động với 'originalPosition' tích cực. Bất kỳ ý tưởng làm thế nào để làm cho nó hoạt động với giá trị tiêu cực quá? – Core972