调整coffeescript使用window.onload

Den*_*nis 7 coffeescript

我有以下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)
Run Code Online (Sandbox Code Playgroud)

如何在加载整个窗口后才能运行我的功能?

到目前为止我的最佳尝试看起来像

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

但它不起作用.我也尝试了其他几种可能性,但我无法弄清楚什么是错的.

我的问题与不同,因为我不想等到所有的咖啡因都已完成加载,我想等到我的网页中的所有图片都已加载.

Wes*_*ter 5

要在加载load()完所有图像后执行所需的代码,请在窗口上使用jQuery的方法。document观看DOM,同时window观看内容。

在咖啡中,它看起来像这样:

$(window).load ->
  alert 'All images are loaded'
Run Code Online (Sandbox Code Playgroud)

window.onload我建议的是,这与您所使用的之间的区别$(window).load()