我有以下coffeescript,除了这样的事实,即当图像需要一段时间加载它运行之前运行图像,然后没有达到预期的效果:
server.js
如何在加载整个窗口后才能运行我的功能?
到目前为止,我的最佳尝试似乎是
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)
但它不起作用。我也尝试了其他几种可能性,但我无法弄清楚什么是错误的。
我的问题与this one不同,因为我不想等到所有coffeescripts都已完成加载,我想等到我的网页中的所有图片都已加载。
答案 0 :(得分:5)
要在加载所有图像后执行所需的代码,请在窗口上使用jQuery的load()
方法。 document
监视DOM,而window
监视内容。
在咖啡中,它看起来像这样:
$(window).load ->
alert 'All images are loaded'
这与你所拥有的不同之处在于你使用window.onload
,而我建议$(window).load()
。