根据文档,这应该可以工作:
$('#content').on( 'load', function(event){
alert('ready')
})
但不是。 http://jsfiddle.net/SJKqt/
这确实有效:
$('#content').on( 'load', alert('ready') )
但是我根本无法运行匿名函数。
以下元素支持onload事件:
<body>, <frame>, <frameset>, iframe, <img>,
<input type="image">, <link>, <script>, <style>
所以我想您不是要在其中之一上注册处理程序。
与图像一起使用时加载事件的注意事项
开发人员尝试使用.load()快捷方式解决的常见挑战是,在完全加载图像(或图像集合)后执行函数。有几个已知的注意事项,应该注意。这些是:
- 它不能始终如一地工作,也不能可靠地跨浏览器
- 如果图像src设置为与以前相同的src,则无法在WebKit中正确触发
- 无法正确弹出DOM树
- 可以停止为已经存在于浏览器缓存中的图像触发
注意:.live()和.delegate()方法不能用于检测iframe的加载事件。加载事件无法正确地使父文档冒泡,并且Firefox,IE9或Chrome并没有设置event.target,这是执行事件委派所必需的。
您的jsFiddle正在iframe中运行,这可能是为什么您的代码无法在其中运行的一种解释。