0

ドキュメントの準備ができたときにJavascript関数を適切に呼び出す方法がよくわかりません。私の目標は、ブラウザ ウィンドウの高さに応じて div のサイズを変更することです。このコードは、SO の別の回答から取得しました。私は何を間違っていますか?

function resizeElementHeight(element) {
  var height = 0;
  var body = window.document.body;
  if (window.innerHeight) {
      height = window.innerHeight;
  } else if (body.parentElement.clientHeight) {
      height = body.parentElement.clientHeight;
  } else if (body && body.clientHeight) {
      height = body.clientHeight;
  }
  element.style.height = ((height - element.offsetTop) + "px");
}

$(document).ready(resizeElementHeight($('#global_image'))); 

呼び出そうとしている要素の ID は「global_image」ですが、「未定義のプロパティの高さを設定できません」というメッセージが表示され、関数に適切な要素を提供する方法に迷っています。ご協力いただきありがとうございます!

4

3 に答える 3

5

ready()引数として関数が必要です。現在、 を呼び出して、その戻り値を にresizeElementHeight()渡しています。ready()

現在のコードでは、DOM を呼び出した時点でresizeElementHeight()はまだ準備ができておらず、要素#global_imageはまだ DOM ツリーにありません。

次のように変更する必要があります。

$(document).ready(function() {
    resizeElementHeight($('#global_image'));
});
于 2013-05-05T11:46:48.370 に答える
1

関数 resizeElementHeight は、JavaScript オブジェクトではなく、DOM 要素を想定しています。techfoobar の回答を拡張するには、次のように変更する必要があります。

$(document).ready(function() {
    resizeElementHeight($('#global_image')[0]);
});
于 2013-05-05T11:57:24.503 に答える