0

現在選択されているタブの高さを取得し、その値を postMessage() で親 iframe に渡したい:

    // ...
    jQuery("#my-tabs").tabs({
        selected: ran,
        show: function( event, ui ) {
            try
            {
                console.log(ui.panel);

                var height = ui.panel.height();

                if (window.postMessage && parentUrl != undefined)
                    parent.postMessage("height:" + height, parentUrl);
            }
            catch (c)
            {
                console.log(c.message);
            }
        }

    });

ページが読み込まれ、ランダムに選択されたタブが表示されると、正常に動作します。

しかし、別のタブを選択すると、ui.panel はもう jQuery オブジェクトではないため、height() にアクセスするとクラッシュします。Object #<HTMLDivElement> has no method 'height'

UI 1.8.6 で jQuery 1.4.3 を使用していますが、この奇妙な動作については何も見つかりません。(jQuery('#example').bind('tabsshow' ... 同じこと)も試しました)

4

1 に答える 1

0

height() メソッドをチェックして修正し、それ以外の場合は ui.panel を jQuery オブジェクトに解析します。

                if (typeof(ui.panel.height) == "function") {
                    var height = ui.panel.height();
                }
                else {
                    var panel = jQuery(ui.panel);
                    var height = panel.height();
                }
于 2013-04-30T14:45:21.570 に答える