2011-03-16 4 views
0

ページが読み込まれたときにイメージの高さが取得され、それに従ってコンテナdivのサイズが変更されるコードがあります。これは、最初にページが読み込まれたり、Ctrl + F5でハードリフレッシュを行わない限り、正常に動作しますが、動作しません。私は使用しようとしましたjqueryハードリフレッシュ後にload()が機能しない

$('#div img').load(function() { 
// put the code here 
}); 

しかし、私は同じ問題が発生します。誰がなぜこれが起こっているのか知っていますか?

これは私のコードです:

maxheight = 0; 
$('#venue #main-img img').each(function() { 
    height = $(this).height(); 
    if(height > maxheight) { 
     maxheight = height; 
    } 
    $(this).hide(); 
}); 
$('#venue #main-img').animate({ height: maxheight }); 
$('#venue #main-img img').first().show(); 

申し訳ありませんが言っているはずです。コードは$(document).ready()内にあります

+0

すべての繰り返しの後、maxheightは0に戻らず、その高さ(maxheight)はそれに基づいていることを考慮していますか? – mattsven

+0

「うまくいかない」とはどういう意味ですか? _actually_何が起こるか? –

+0

img load関数の中にコードを貼り付けてください。私はそこにエラーがあると確信しています。また、火かき棒を使用していますか?はいの場合は、返されたエラーを親切にチェックしてください。 –

答えて

2

$(window).loadでコードを呼び出してみてください。これは、すべての画像がロードされた後に実行されます。

$(window).load(function() { 
    // run code 
}); 

また、imgloadプラグインを試すこともできます。

0

あなたは代わりにこれをしようとする場合があります:

$(document).ready(function(){ 
//code here 
}); 
1

あなたのイメージは、HTMLやCSSで指定した幅/高さを持っていない場合は、それらの幅/高さの画像がダウンロードされた後まで知られていません。

$(document).ready DOMがロードされたときに、イメージなどの補助メディアがダウンロードされる前に発生する可能性があります。つまり、ブラウザが画像を再ダウンロードする際に、幅/高さが0になる可能性があります。

多分thisのようなものを使用できます。特に "imagesLoaded"プラグインは便利です(そのコードは$(imgs).loadがあなたのために働いたはずであることを暗示していますが。<)。

2

のようないくつかのjQueryプラグインを使用することができます。いくつかの調査の後では、サイズをリセットするために、ブラウザが画像のための所定の値を持つ必要があると思われる。だから、最初の負荷では、それが上がるが、再読み込み時に画像の高さが保持されるので、javascriptは正しく動作する。 JSのサイズを適切に変更できるように、画像の最初の高さにコードを記述する必要があります。

関連する問題