Javascript为什么IE不执行这段代码
Javascript why doesn't IE execute this code?
我正在制作一个具有菜单的网站(http://euroscala.balkanium.com/),当您单击菜单项时,应该会出现一个缩略图列表。我正在尝试预加载所有应该出现的图像,然后显示它们。它在除IE以外的所有浏览器上都可以正常工作(我有版本8)。我已经为任何愿意在这里看的人整理了代码:http://jsfiddle.net/THpgM/2/
我认为问题出在这段代码上(靠近小提琴中第一个函数的底部)
img.onload = (function(i){
// code here is executed
return function(){
// code here is not
++totalLoaded;
document.getElementById("li" + i).style.height = this.height + "px";
document.getElementById("li" + i).setAttribute("data-height", this.height);
if(totalLoaded == totalThumbs){
// do some stuff
}
};
})(i);
我花了大约 2 天的时间试图弄清楚这一点。如果有人能帮我解决这个问题,将不胜感激。
在 IE 中,您必须在分配.src
之前分配.onload
处理程序。 如果不这样做,则 onload 事件可能会在 onload 处理程序就位之前触发,您将错过该事件。
// assign .onload before .src
img.onload = function() {};
img.src = "xxx.jpg";
如果图像位于浏览器缓存中(因此它们在分配.src
时会立即加载),并且您的 onload 处理程序永远不会执行,则 IE 中的特定问题将发生。
因此,在您的 jsFiddle 中,将作业移动到 .src
之后 作业 到 .onload
.
相关文章:
- 无法限制所选复选框的数量(尝试了多个代码段)
- 返回按钮代码段的Jquery冲突
- 问号在这段代码中是什么意思
- 我怎样才能用速记函数来写这段代码
- 为什么jQuery代码段在没有IFrame的情况下可以工作,而在有IFrame时却不能工作
- 为什么在以下代码段中无法访问中的变量值
- 这段代码的含义是什么<%=一些可变的%>
- 崇高的jslint:任何忽略特定代码段的方法
- 为什么这两段代码返回的值不同
- 如何重复某段代码
- Mozilla并没有完美地执行这段代码,尽管它适用于Chrome和IE
- 将 JSP 变量输出到 JavaScript 代码段中
- 这段代码的含义是什么 'start = +start ||0;' 在 JavaScript 中
- Eloquent JS第5章中的这段代码是做什么的
- JQuery:这段代码是什么意思
- 这段代码中发生了什么
- 这段代码有什么问题(responsible html-css-js)
- 调试jQuery代码段
- 嵌套if语句中的else语句.这段代码如何知道要执行哪个else语句
- 这段代码的语法是什么