在已加载的DOM元素上动态更改/分配ui可调整大小的实例

时间:2011-11-04 14:25:32

标签: jquery dom jquery-ui-resizable

我正在尝试在DOM加载后动态分配jQuery-UI的不同实例可调整大小。

我基本上想要根据某些因素分配固定的aspectRatio为true或false。当我请求一个新的可调整大小的实例时,它似乎没有更新。

用于分配resizable()的选择器也是在DOM加载后动态创建的。

以下是我的代码的简化示例:

jQuery的:

$(document).ready( function() {

    $('.lyr').addClass('loose');
    $('.lyr2').addClass('fixed');

$('#change').bind( 'click', function() {

    if( $('.lyr, .lyr2').hasClass('loose') ) {

        $('.lyr, .lyr2').addClass('fixed').removeClass('loose');

        $('#status').html('changed to fixed');

        $('.lyr, .lyr2').resizable({
            aspectRatio: true,
            handles: 'all'
        });

    } else {

        $('.lyr, .lyr2').addClass('loose').removeClass('fixed');    

        $('#status').html('changed to loose');

        $('.lyr, .lyr2').addClass('fixed'); 

    }

});

});

HTML:

<input type='button' id='change' value='change'>

<div id="canvas">
    <p>Resizable items</p>
    <div class='lyr'></div>
    <div class='lyr2'></div>

</div>

以下是一个正在运行的示例:http://digitaloutback.co.uk/resizable-eg/(按'更改'指定初始可调整大小)

我还使用'live'和'livequery'插件代替'bind',所以我不确定问题的根源是什么..

找到解决方案

在jQuery UI文档中,答案就在我面前:

在重新分配之前调整大小('destroy')。

$('.lyr, .lyr2').resizable('destroy').resizable()..

1 个答案:

答案 0 :(得分:2)

在jQuery UI文档中,答案就在我面前:

在重新分配之前调整大小('destroy')。

$('.lyr, .lyr2').resizable('destroy').resizable()..