jquery - Jcrop 和 IE 以及动态添加图像的问题

标签 jquery image internet-explorer jquery-events jcrop

我正在向页面添加图像,然后在其上使用 JCrop,但它似乎在 IE8 中不起作用,除非我在 $img.show() 和调用 JCrop 方法。这是一个 JCrop 也可以在 IE8 中工作的最小示例,但我想删除第 16 行和第 18 行,或者至少了解在这 250 毫秒内需要发生什么。

 10       var $img = $('<img id="example" style="display:none;">');
 11 
 12       $("body").append($img);
 13 
 14       $img.on("load", function () {
 15           $img.show();
 16           setTimeout(function () {
 17               $("#example").Jcrop();
 18           }, 250);
 19       });
 20 
 21       $img.attr("src", "/assets/example.png");

最佳答案

script element 一样、IE8 和下火力遗产 readyStateChange事件而不是用于图像 src 更新的标准 load 事件,因此计时器掩盖了事件无法识别的事实。解决方案是在回调之前 fork 代码:

function imageSwap()
  {
  var $img = $('<img id="example" style="display:none;">');

  $("body").append($img);

  $img.attr("src", "/assets/example.png");

  if(!!document.addEventListener)
    {
    $img.on("load", loadTest)
    }

  else
    {
    $img.get(0).attachEvent("onreadystatechange", loadTest);
    } 

  function loadTest(event)
    {
    $img.show();
    $("#example").Jcrop();
    }
  }

关于jquery - Jcrop 和 IE 以及动态添加图像的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13699178/

相关文章:

c# - 从 LocalCache 在 WP 8.1 应用程序中打开缩放图像文件

image - pict 中的 hb-append vs hbl-append 和 ht-append vs htl-append

css - div 内的 div 在 IE 中跳转到下一行

html - 页面在 chrome/firefox 中工作正常但在 IE 中不工作

javascript - 将 JQuery 转换为 addEventListener 用于按键事件

jquery - 将换行符和空格替换为 "+"

javascript - 向下滚动到 Javascript 进度条后加载它

javascript - jquery $ 如何在没有冲突的情况下工作?

python - 检测视频中穿着红色的人

javascript - ngFor 未在 IE 11 中更新(带有 CoreJS 的 RC4)