Fix*_*ker 5 javascript dom dom-events
我似乎无法找到这个问题的明确答案......
假设我有一个对页面上图像的 JavaScript 引用,并且我将一个load事件处理程序绑定到该元素。例如,这样的事情:
超文本标记语言
<img id="myImage" src="http://example.com/image.jpg" />
Run Code Online (Sandbox Code Playgroud)
JavaScript
var $myImage = $('#myImage');
$myImage.load(function() {
alert('Image loaded!')
});
Run Code Online (Sandbox Code Playgroud)
现在,如果我这样做:
var imageElem = $myImage[0];
imageElem.src = imageElem.src; // Re-assign the image source path
Run Code Online (Sandbox Code Playgroud)
...即使图像已经从服务器加载,load事件处理程序也会触发吗?在 Firefox 中似乎可以,但是依赖这种行为安全吗?
(我问的原因是我在 jQuery 插件中看到它用于检查所有图像何时加载。如果在load绑定事件处理程序之前加载图像,那么它不会触发,除非使用它重新触发上面的方法。)
设置 img.src 应该会触发加载,但有一些注意事项。根据 jQuery 自己关于 .load 事件的文档,
与图像一起使用时加载事件的注意事项
开发人员尝试使用 .load() 快捷方式解决的一个常见挑战是在图像(或图像集合)完全加载时执行函数。有几个已知的警告需要注意。这些都是:
- 它不能一致地、可靠地跨浏览器工作
- 如果图像 src 设置为与之前相同的 src,则它不会在 WebKit 中正确触发
- 它没有正确地冒泡 DOM 树
- 可以停止触发已存在于浏览器缓存中的图像
| 归档时间: |
|
| 查看次数: |
3779 次 |
| 最近记录: |