2015-09-26 19 views
6

私は以下のcoffeescriptを用意しています。イメージが読み込まれる前にイメージが読み込まれてから目的の効果が得られない場合を除いて動作します。window.onloadを使用するためにcoffeescriptを変更する

ready = -> 
    jQuery -> 
    $('.box').find('img').each -> 
     imgClass = if @width/@height > 1 then 'wide' else 'tall' 
     $(this).addClass imgClass 
     return 
    return 


$(document).ready(ready) 
$(document).on('page:load', ready) 

ウィンドウ全体が読み込まれた後でのみ、どのように機能を実行できますか?

私の最高の試みは、これまで

window.onload = -> 
    $('.box').find('img').each -> 
    imgClass = if @width/@height > 1 then 'wide' else 'tall' 
    $(this).addClass imgClass 
    return 
    return 

のように見えますが、それは動作しません。私はいくつかの可能性を試しましたが、何が間違っているのか分かりません。

私の質問はthis oneとは異なります。私はすべてのcoffeescriptの読み込みが完了するまで待たずに、自分のウェブページ内のすべての画像が読み込まれるまで待ちたいと思います。

+0

可能な複製[coffeescriptにはブラウザのonLoadのようなイベントがありますか?](http://stackoverflow.com/questions/6656951/does-coffeescript-have-an-onload-like-event-for-the-browser ) –

+0

間違いなく重複はありません。理由を説明する私の編集を見てください。 – Dennis

+0

清算をありがとう。 –

答えて

3

すべての画像がロードされた後で、希望するコードを実行するには、ウィンドウでjQueryのload()メソッドを使用します。 documentはDOMを監視し、windowはコンテンツを監視します。

コーヒーで、それは次のようになります。私は$(window).load()を示唆してるのに対し、あなたはwindow.onloadを使用していた

$(window).load -> 
    alert 'All images are loaded' 

これと何を持っていたとの差。

関連する問題