匿名jQuery回调怎么不触发?

问题描述 投票:0回答:2

根据文档,这应该可以工作:

$('#content').on( 'load', function(event){
    alert('ready')
})

但不是。 http://jsfiddle.net/SJKqt/

这确实有效:

$('#content').on( 'load', alert('ready') )

但是我根本无法运行匿名函数。

jquery callback anonymous-function jquery-events
2个回答
2
投票

以下元素支持onload事件:

<body>, <frame>, <frameset>, iframe, <img>, 
<input type="image">, <link>, <script>, <style>

所以我想您不是要在其中之一上注册处理程序。


0
投票

来自the jQuery page on .load()

与图像一起使用时加载事件的注意事项

开发人员尝试使用.load()快捷方式解决的常见挑战是,在完全加载图像(或图像集合)后执行函数。有几个已知的注意事项,应该注意。这些是:

  • 它不能始终如一地工作,也不能可靠地跨浏览器
  • 如果图像src设置为与以前相同的src,则无法在WebKit中正确触发
  • 无法正确弹出DOM树
  • 可以停止为已经存在于浏览器缓存中的图像触发

注意:.live()和.delegate()方法不能用于检测iframe的加载事件。加载事件无法正确地使父文档冒泡,并且Firefox,IE9或Chrome并没有设置event.target,这是执行事件委派所必需的。

您的jsFiddle正在iframe中运行,这可能是为什么您的代码无法在其中运行的一种解释。

© www.soinside.com 2019 - 2024. All rights reserved.