2011-01-29 24 views

答えて

1

のような私には、例えば、keyupイベントを追跡し、#childの高さを見たい:

var $child = $('#child'); 

var $container  = $('#container'); 
var container_height = $container.height(); 
$container.resizable(); 

$child.keyup(function() { 
    var h = $child.height(); 
    if(h > container_height) { 
     $container.height(h); 
     container_height = h; 
    } 
}); 
あなたは、それは、単に ifを変更して、物事の初期サイズの世話をするだけでなく縮小したい場合は http://jsfiddle.net/ambiguous/ULUJX/10/

はここにあなたのjsfiddleの更新されたバージョンです。

+1

これは動作する解決策ではありません。問題は、子が親の高さを超えたときにコンテナのサイズを自動的に変更する方法でした。 – Hussein

+0

私は「実際の状況では、外部コンテナのサイズを変更するなど面白いことをやっている」と言っていましたが、いくつかのガイダンスとは対照的に、完全な回答を得るための迅速なアップデートが順番に行われています。 –

+0

ウィンドウオブジェクトのサイズ変更イベントのみですか? – Alxandr

0

私はこれをテストしていた、それはあなたが速い高さを更新するために速度を変更することができますが、あなたが編集可能なボックスでそれを使用するつもりならば、イベントトリガーを使用する方が良いでしょう良い

(function heightFix($){ 
    var parentCon = $('#container'), 
     child = $('#child').height(); 
    if(parentCon.height() < child){ 
     parentCon.height(child) 
    } 
    setTimeout(function(){ 
     heightFix($); 
    },100) 
}(jQuery)); 

の作品

$('#child').live('keypress', function(){ 
    var parentCon = $('#container'), 
     child = $(this).height(); 
    if(parentCon.height() < child){ 
     parentCon.height(child) 
    } 
}); 
+0

これをkeyupに変更し、タイムアウトを削除してみてください。 – Alxandr

+0

wooopsは2番目の感謝を忘れました –

関連する問題