javascript – jQuery resizable()动态maxWidth选项

我有3列可调整大小.当一个变宽时,左边的一个变得更小.基本上只有2个手柄.左坳和中旬.因此,当Mid col变得更薄时,Right col会相应地扩展.它们中的所有三个都包含900px父div,因此所有三个的总和始终为900.它们具有静态设置的最大和最小宽度.

我的问题是,如果你拿左手柄并将它一直向右移动,你仍然可以使用右手柄并将中间col扩展到父div的边缘.

我想到了一种方法来解决这个问题,通过编写一个函数来检查列的宽度,然后从父div宽度中减去左右列,我称之为mWid.这给我留下了我想要设置为Mid col的maxWidth的数字.

现在问题是mWid没有在这里更新“maxWidth:mWid”

以下是右手柄的功能:

$(function() {
    $("#midResizable").resizable({
        handles: 'e',
        containment: '#container',
        maxWidth: mWid, // gets set once, but doesn't update! WHY?
        minWidth: 195,
        resize: function(event, ui) {
            contWidth = $('#container').width()
            newWidth = $(this).width()
            leftWidth = $('#leftResizable').width()
            rightWidth = $('#rightResizable').width()
            $("#rightResizable").css("width", (contWidth-15)-(newWidth)-(leftWidth)+"px");
            checkWid()
        }
    });     
});     

function checkWid() {
    rightWidth = $('#rightResizable').width()
    leftWidth = $('#leftResizable').width()
    contWidth = $('#container').width()
    mWid = (contWidth-15)-(rightWidth)-(leftWidth)
}

解决方法:

看看这个:http://jqueryui.com/demos/resizable/#option-maxWidth

看起来像maxWidth:mWid,只在init上调用.

之后需要显式设置maxWidth,如下所示:

$( "#midResizable" ).resizable( "option", "maxWidth", mWid );

相关文章

1.第一步 设置响应头 header('Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...