27

2列のサイトがあります。jQueryを使用して両方で同じ高さにしたいと思います。

ロゴの列の高さを取得しようとしています。私が持っていた:

$(document).ready(function() {
    alert($('#logo').height());
});​

そしてそれはうまくいきませんでした。だから私はそれを次のように変更しました:

window.onload = function(){
    alert($('#logo').height());
}

そして、それは機能しています。ここで何が起こっているのですか?

4

2 に答える 2

35

document readyDOMがロードされたときに発生するため、明示的に宣言されていない限り、高さなどの情報は利用できません。

window onloadページ内のアセットが完全に読み込まれるのを待ちます。これで、高さなどの情報が利用できるようになります。

于 2012-05-27T23:54:41.233 に答える
6

$(document)ready内の画像の高さと幅を処理する際に同じ問題が発生し、それを解決するためのより良い参照を見つけました...これが誰かに役立つことを願っています

$(document).ready()

すべてのグラフィックがまだロードされていない場合でも、HTMLドキュメントがロードされ、DOMの準備ができたときに、ドキュメント準備イベントが発生します。ウィンドウが読み込まれる前に特定の要素のイベントをフックする場合は、$(document).readyが適切な場所です。

コード:

$(document).ready(function() {
    // document is loaded and DOM is ready
    alert("document is ready");
});

$(window).load()

ウィンドウの読み込みイベントは、すべてのフレーム、オブジェクト、画像を含むページ全体が完全に読み込まれたときに発生しました。したがって、画像やその他のページコンテンツに関連する関数は、ウィンドウまたはコンテンツタグ自体のロードイベントに配置する必要があります。

コード:

$(window).load(function() {
    // page is fully loaded, including all frames, objects and images
    alert("window is loaded");
});
于 2014-06-23T05:15:26.930 に答える