2013-09-03 7 views
6

私はresizeイベントがbodyまたはdiv要素上にあることを言って複数のページを取得:クライアント側のJavaScriptでは、ウィンドウ以外の任意の要素はサイズ変更イベントを取得できますか?

http://www.w3schools.com/jsref/event_onresize.asp

http://v3.javascriptmvc.com/docs/jQuery.event.special.resize.html#&who=jQuery.event.special.resize

が、その後、私はjsfiddle中またはスタンドアロンのページでそれを試してみましたが、決して得ることができますが要素のresizeイベント:

http://jsfiddle.net/sgHck/1/

http://jsfiddle.net/sgHck/8/

Can bodyまたはdivリサイズイベントをまったく取得できますか?そうでない場合は、ページ内のセクションを縮小する必要があり、ページの一部が別の要素を適切に配置するためにscrollイベントに依存し、ウィンドウではなくドキュメントのresizeイベントも同様に必要になります?

+2

あなたのイベントはFirefoxで私のために発生します。私は 'body'にいくつかの次元を与えると、Chromeで私のために起動します。 http://jsfiddle.net/sgHck/9/ – user2736012

+0

iPadの場合、デバイスを回転させると本体のサイズ変更イベントが発生する – Drahcir

+0

しかし、「追加」ボタンを何度もクリックすると、本体が最初に読み込まれたときよりも大きくなります'body 'や' #content'もイベントを取得しません。試してみてくださいhttp://jsfiddle.net/sgHck/14 –

答えて

0

ちょっと掘り下げた後、サイズ変更イベントがあなたの望むやり方ではないように思えます。

あなたはこの

$('#content').resize(function(){ 
    //stuff to do 
} 

または

あなたがすでにやっている
$('#content').on('resize', function(){ 
    //stuff to do 
} 

ようにresizeイベントを追加することができますが、要素はjavascriptのコードか何かでリサイズされたとき、これらは単に起動しません。そうですね。このように、それをトリガーする唯一の方法は、あなたが本当に任意の文字列で行うことができます

$('#content').trigger('resize'); 

です。これはdomツリーを介して伝播します。 #contentをbodyの内側に 'resize'というイベントがあるとします。 #contentをトリガーすると、本体もトリガーされます。ただし、bodyでイベントをトリガーすると、#contentはトリガーされません。

しかし、jquery-uiのサイズ変更可能なメソッドhttp://jqueryui.com/resizable/を使用して、必要な機能の種類を取得できるようです。

$('#content').resizable({options}); 

これを変更すると、サイズ変更イベントがトリガーされます。

関連する問題