Alv*_*vin 10 jquery jquery-ui jquery-ui-resizable
我试图在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 );
}
});
Run Code Online (Sandbox Code Playgroud)
我发现了一个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"]));
});
Run Code Online (Sandbox Code Playgroud)
将其粘贴到您的JavaScript脚本部分.希望它可以帮助有类似问题的人!
UnL*_*oCo 11
这对我来说没有修补
$('#resizable')
.resizable('option', 'aspectRatio', false)
.data('uiResizable')._aspectRatio = false;
Run Code Online (Sandbox Code Playgroud)
这部分.data('uiResizable')._aspectRatio = false;来救援
我不知道它是否会起作用或会发生什么。但你可以尝试这样的事情。
$(function(){
var settings = {
aspectRatio : .75
};
$("#tadaa").resizable(settings);
$("input").change(function(){
if($(this).is(":checked"))
{
$("#tadaa").resizable( "destroy" );
$("#tadaa").resizable();
}
else
{
$("#tadaa").resizable( "destroy" );
$("#tadaa").resizable(settings);
}
});
});
Run Code Online (Sandbox Code Playgroud)
现场演示,目前只有底部可拖动元素的样式可供使用,水平 div 没有样式。
| 归档时间: |
|
| 查看次数: |
2220 次 |
| 最近记录: |