2017-01-23 9 views
0

1つのdivが他のdivsより大きい場合、すべてのdivのサイズを変更するためにこのコードを作成しました。ロード時にコードが実行され、ウィンドウのサイズが変更されたときにネストされた関数が機能します。 resizeAgain()が定義されていないというエラーが表示されます。更新機能がリサイズで定義されていない

: は、コールバックを忘れました:sameSize('.content', '.col1', '.col2');

<body onresize="resizeAgain()"> 
     function sameSize(e, selector1, selector2) { 

     var slave = $(selector1).height(); 
     var master = $(selector2).height(); 
     var maxHeight = Math.max(slave, master); 

     $(e).height(maxHeight); 

     function resizeAgain() { 
      $(e).css('height',''); 
      $(e).height(maxHeight); 
     } 
     sameSize('.content', '.col1', '.col2'); 
+1

このコードでは、構文エラーがあります。私はこれがスコープエラーであることを賭けています。 –

+0

コールバック関数sameSize( '。content'、 '.col1'、 '.col2')を忘れました。 –

+0

私はLeeに同意しますが、まずコードを更新してください。提供されたコードが正しくありません。角かっこがありません。 – NikxDa

答えて

0

機能resizeAgainは、ウィンドウの範囲からそれを呼び出すときにエラーが発生している理由です、sameSize関数のスコープの内側にのみ表示されます。

あなたはグローバルスコープでこの関数を定義することができます。

<body onresize="resizeAgain('.content')"> 

function resizeAgain(e) { 
    $(e).css('height',''); 
    $(e).height(maxHeight); 
} 

function sameSize(e, selector1, selector2) { 
    var slave = $(selector1).height(); 
    var master = $(selector2).height(); 
    var maxHeight = Math.max(slave, master); 
    $(e).height(maxHeight); 
} 

sameSize('.content', '.col1', '.col2'); 
0

機能resizeAgain()sameSize(e, selector1, selector2)で定義され、これはsameSize(..)外それがアクセス不能になって、その範囲を変更しています。

あなたは、この他の回答でより多くの情報を見つけることができます。javascript-nested-function

関連する問題