2014-09-21 91 views
0

我有一个图像和一个微调。我已经写了一些代码来说,当任何img加载时删除类'微调'。它适用于Chrome,Firefox和Opera,但不适用于Internet Explorer。此Javascript在IE中不起作用,但适用于Chrome,Firefox和Opera

我在Windows 7上使用Internet Explorer 11

我已经在这里创造一个非常基本的jsfiddle例如:http://jsfiddle.net/Forresty/o8v6xsze/

出于某种原因,它不是在工作的jsfiddle在任何浏览器,所以我我不知道该怎么做。我已经通过点击功能对其进行了测试,所以如果我单击图像,微调控件类将被删除,并且可以正常工作。所以我认为这与加载方面有关。

我有一些其他的JavaScript在我的网站上工作,所以我不认为这是一个IE特定的问题。

下面是代码:

HTML:

<div class="spinner"></div> 
<img class="workImage" src="http://upload.wikimedia.org/wikipedia/commons/2/23/Lake_mapourika_NZ.jpeg"> 

CSS:

.workImage{ 
    width: 500px; 
    height: 500px; 
} 

.spinner{ 
    width: 500px; 
    height: 500px; 
    background: red; 
} 

的Javascript:

$('img').on('load', function() { 
    $("div").removeClass("spinner"); 
}) 

我也试过此javascript:

$('img').load(function() { 
    $('div').removeClass('spinner'); 
}) 

我不知道我在想什么。任何帮助,将不胜感激。

谢谢。

+2

[jQuery图像加载回调(即使图像被缓存)]的可能重复](http://stackoverflow.com/questions/3877027/jquery-callback-on-image-load-even-when-the-图像缓存) – antyrat 2014-09-21 13:01:03

+0

非常感谢antyrat – Forrest 2014-09-21 13:19:46

回答

0

您需要在jsfiddle的左上角应用ondomready。它运作良好。我也在IE10中测试过它。

http://jsfiddle.net/o8v6xsze/1/

为了解决在IE10的问题,您可以使用:

$('img').on('load', function() { 
    $("div").removeClass("spinner"); 
}).each(function() { 
    if(this.complete) $(this).load(); 
}); 

http://jsfiddle.net/o8v6xsze/3/

它在我的IE10工作。

+0

谢谢。我刚刚测试过你的jsfiddle,它适用于所有浏览器,但IE适用于我。你认为这是特定于我的IE版本吗? – Forrest 2014-09-21 13:03:38

+0

也许它已禁用JavaScript?运行一个简单的警报,看看它是否工作。 – 2014-09-21 13:04:30

+0

@Forrest抱歉,我的错误。它也不适用于我的IE浏览器。我不知道我第一次看到什么。将看看它 – 2014-09-21 13:05:48