0

複数パネルの jQuery レイアウトがあり、サイズ変更中の中央パネルのサイズを知りたいです。document.ready 関数は次のようになります。

$(document).ready(function () { 

    outerLayout = $('body').layout({ 
        spacing_open:           8
    ,   south__spacing_open:    4 
    ,   north__minSize:         40
    ,   north__maxSize:         200
    ,   center__onresize:       resizeInnerLayout
    ,   resizeWhileDragging:    true
    ,   triggerEventsWhileDragging: true
    }); 

resizeInnerLayout 関数は次のとおりです。

function resizeInnerLayout() {
    var width=$('#content-middle').width();
    var height = $('#content-middle').height();
    console.log("content-middle size = ("+width +"," +height +")");
};

html は次のとおりです。

<div id="content-middle" class="inner-center">
    <svg></svg>
</div> 

Javascript は svg 内に d3 チャートを配置します。ユーザーが分割バーをスライドさせたときにサイズが変更されるので、それに応じてチャートのサイズを変更できるように、div のサイズを知る必要があります。現在、console.log には何も出力されません。

また、次のように関数を layoutpaneresize イベントにバインドしようとしました。

$('.inner-center').bind('layoutpaneresize', function(paneName, $pane, paneState, paneOptions) {
        console.log("content-middle size = ("+paneState.width +"," +paneState.height +")");     
    });

しかし、何も出力しません。これもしませんでした:

$('.inner_center').resize(function() {
    console.log("content-middle is being resized");
});

これは機能しますが、ウィンドウ内のスプリッターのサイズが変更された場合ではなく、ブラウザー ウィンドウのサイズが変更された場合にのみ機能します。それでも、サイズ変更を開始するとサイズが報告されますが、サイズが変化し続けると更新されません。

window.addEventListener("resize", drawChart);

何か案は?

4

2 に答える 2