我对Javascript很陌生,而且我知道自己的方式有点困难。
我正在尝试制作一个jQuery插件,用于使用jQuery UI可调整大小的插件处理调整大小元素。
当用户开始调整div的大小时,我想执行一些逻辑来确定最小值&最大尺寸我希望他们能够重新调整大小,但在文档示例中,这总是提前声明。
以下是我尝试启动此功能然后我有点迷失了。这是我在Javascript中做的第一件事,除了简单的文本或颜色更改之外。
$.fn.myresize = function() {
// add draggable handle only on right
this.resizable({
handles: 'e'
});
var calculateSizes = function(event, ui) {
// in reality I am reading several different values to work these value out but for simplicity sake here is just arbitary numbers
var minWidth = 100;
var maxWidth = 100 * 3;
// how do I now set the min & max values for jQuery UI resizable?
}
// call my function for calculating the min & max width
this.on("resizestart", calculateSize);
};
$(function() {
$("#resizable").myresize();
});
#resizable { width: 150px; height: 150px; padding: 0.5em; }
#resizable h3 { text-align: center; margin: 0; }
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
<link href="https://code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<h2>Resizable</h2>
<div id="resizable" class="ui-widget-content">
<h3 class="ui-widget-header">Resizable</h3>
</div>
(针对移动用户的Jsfiddle镜像:https://jsfiddle.net/9909zfz0/)
我想我可以提前计算出页面每个元素的大小,但是当我只想对相邻的兄弟姐妹感兴趣时,这似乎是一个很大的开销。
非常感谢这里的一些一般性建议。
答案 0 :(得分:1)
我设法找到了一个设置选项的片段并将其弄清楚了。在这里。
$.fn.myresize = function() {
// add draggable handle only on right
this.resizable({
handles: 'e'
});
var calculateSizes = function(event, ui) {
// in reality I am reading several different values to work these value out but for simplicity sake here is just arbitary numbers
// here it is
ui.element.resizable("option", "minWidth", 100);
ui.element.resizable("option", "maxWidth", 100 * 3);
}
// call my function for calculating the min & max width
this.on("resizestart", calculateSizes);
};
$(function() {
$("#resizable").myresize();
});
#resizable { width: 150px; height: 150px; padding: 0.5em; }
#resizable h3 { text-align: center; margin: 0; }
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
<link href="https://code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<h2>Resizable</h2>
<div id="resizable" class="ui-widget-content">
<h3 class="ui-widget-header">Resizable</h3>
</div>