JQuery .load()无法在Internet Explorer中运行

时间:2013-06-29 05:12:14

标签: javascript jquery internet-explorer

我在网站上使用以下代码:

<script src="js/jquery-1.10.1.js" type="text/javascript"></script>
<script src="js/jquery-migrate-1.2.1.js" type="text/javascript"></script>

<script type="text/javascript">
    $(document).ready(function() {
        $("img#logo").load(function() {
            alert('Hello');
        });
    });
</script>

这在IE中不起作用,但在Firefox,Chrome和Safari中运行良好。

2 个答案:

答案 0 :(得分:3)

我可以确认您的代码 在Windows 7 64上的IE 8中使用未经编辑的版本:

<!DOCTYPE html>
<html>
 <head>
<title>test</title>
     <script type="text/javascript" src="jquery-1.10.1.js"></script>
     <script>
         $(document).ready(function () {
             console.log($.fn.jquery);
             $("img#logo").load(function () {
                 console.log('Hello');
             });
         });
     </script>
</head> 
 <body> 
     <img id="logo" src="somegig.gif" onload="console.log('load');"/>
 </body>
</html>

这将记录1.10.1然后加载然后你好,也许你必须验证你的HTML并确保你的HTML有效可能这是一个问题。

答案 1 :(得分:1)

快速审核http://api.jquery.com/load-event/提供了一些警告:

  

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

     

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

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

请注意第一和第四个警告。清除缓存并重试。

另外,你需要jQuery迁移吗?失去它,看看它是否有毛刺你的IE